【问题标题】:Mathematica: How to use a single equation with multiple parameters to calculate any parameterMathematica:如何使用具有多个参数的单个方程来计算任何参数
【发布时间】:2009-09-13 18:35:35
【问题描述】:

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

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

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

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

在哪里

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

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

谢谢!

【问题讨论】:

    标签: wolfram-mathematica orbital-mechanics


    【解决方案1】:

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

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

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

    您可能想尝试以下方法:

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

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

    【讨论】:

      【解决方案2】:

      有点晚了:) ...但是 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! ...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-20
        • 2023-01-07
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 2014-12-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多