首页 文章

Mathematica:如何使用具有多个参数的单个方程来计算任何参数

提问于
浏览
3

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

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

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

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

哪里

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

该等式可用于计算速度,或者例如我们知道机动将货物移动到其他轨道所需的速度是多少,并且必须在给定半径(r)处模拟轨道(a)

谢谢!

2 回答

  • 1

    您可以使用“:=”运算符在Mathematica中定义方程式 . 要定义示例等式:

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

    我不知道如何概括它来解决任何未知的问题...如果我弄明白我会回复你 .

    你可能想尝试类似的东西:

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

    假设你知道v,u和a ......那你就可以解决这个问题......你可以改变每个未知的参数...

  • 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! ...

相关问题