我想以米或公里(两者都可以)传递参数值,并以米/秒为单位获取结果。

我在以下示例中尝试执行此操作:

u = 3.986*10^14 Meter^3/Second^2;
v[r_, a_] := Sqrt[u (2/r - 1/a)];

Convert[r, Meter];

Convert[a, Meter];


如果我尝试使用定义的函数和转换:

a = 24503 Kilo Meter;
s = 10198.5 Meter/Second;
r = 6620 Kilo  Meter;
Solve[v[r, x] == s, x]


该函数返回以下内容:

{x -> (3310. Kilo Meter^3)/(Meter^2 - 0.000863701 Kilo Meter^2)}


这不是用户友好的格式。

无论如何,我想以米或公里为单位定义a和r,并以米/秒(米/秒)为单位得到结果s。

如果你们中的任何人都可以更正给定的函数定义和其他语句以获得所需的结果,我将非常感谢。

最佳答案

这是一种实现方法,其中您使用以下事实:Solve返回规则列表,以将x的值替换为v[r, x],然后使用Convert,这将对结果进行必要的简化代数表达式:

With[{rule = First@Solve[v[r,x]==s,x]
      (* Solve always returns a list of rules, because algebraic
         equations may have multiple solutions. *)},
  Convert[v[r,x] /. rule, Meter/Second]]


这将返回(10198.5 Meter)/Second作为您的答案。

10-05 21:47