3

目前,我使用具有不同已知/未知参数组合的单个方程。由于我没有任何花哨的计算器,因此在 Mathematica 中定义方程并传递已知参数来计算未知值会容易得多。

如果你们中的任何人能给出一个示例解决方案(如果可能的话,使用给定的方程),我将非常感激。

假设我们有一个椭圆轨道上给定点的卫星速度方程:

v = sqrt(u(2/r - 1/a))

在哪里

v = 速度 u = 常数 3.986 * 10^14 m^3/s^2 r = 半径(距地球中心的距离) a = 椭圆的半长轴

该方程可用于计算速度,或者例如我们知道将货物移动到其他轨道所需的机动速度,并且必须在给定半径 (r) 下对轨道 (a) 进行建模

谢谢!

4

2 回答 2

1

您可以使用 ":=" 运算符在 Mathematica 中定义方程。要定义示例方程:

v[u_, r_, a_] := Sqrt[u*(2/r-1/a)]

我不知道如何概括它以解决任何未知数......如果我弄清楚了,我会回复你。

您可能想尝试以下方法:

Solve[v[1, r, 7]==15, r]

假设您知道 v、u 和 a,这将解决 r...然后您可以更改未知数的每个参数...

于 2009-09-13T18:46:17.577 回答
1

有点晚了:) ...但是 Reduce[] 可以满足您的要求。我们定义一个函数:

solveForMe[rules_] := Reduce[( v == Sqrt[3.986*10^14 *(2/r - 1/a)]) /. rules];

并使用任何有效的分配组合调用它。例如:

In[72]:= Off[Reduce::ratnz];
         solveForMe[{a -> 7 10^6, r -> 7 10^6}]
         solveForMe[{v -> 10, r -> 7 10^6}]
         solveForMe[{v -> 10, a -> 7 10^6}]

输出是:

Out[73]= v == 7546.05

Out[74]= a == 3.5*10^6

Out[75]= r == 1.4*10^7

!...

于 2010-12-02T00:19:45.953 回答