目前,我使用具有已知/未知参数的不同组合的单个等式。因为我没有任何花哨的计算器,所以在Mathematica中定义方程并传递已知参数来计算未知值会容易得多。
如果有人能给出一个示例解决方案(如果可能的话,使用给定的公式),我将非常感激。
假设我们在椭圆轨道的给定点有一个卫星速度方程:
v = sqrt(u(2 / r - 1 / a))
其中
v =速度 u =常数3.986 * 10 ^ 14立方公尺/ s ^ 2 r =半径(距地球中心的距离) a =椭圆的半长轴
此等式可用于计算速度,或者例如我们知道机动将货物移动到其他轨道所需的速度是多少,并且必须在给定半径(r)
谢谢!
答案 0 :(得分:1)
您可以使用“:=”运算符在Mathematica中定义方程式。要定义示例等式:
v[u_, r_, a_] := Sqrt[u*(2/r-1/a)]
我不确定如何概括它以解决任何未知的问题...如果我弄明白我会回复你。
您可能想要尝试以下内容:
Solve[v[1, r, 7]==15, r]
这将解决r假设你知道v,u和a ...然后你可以改变每个未知的参数...
答案 1 :(得分: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
HTH! ...