Mathematica: как использовать одно уравнение с несколькими параметрами для вычисления любого параметра - PullRequest
3 голосов
/ 13 сентября 2009

В настоящее время я использую одно уравнение с различной комбинацией известных / неизвестных параметров. Поскольку у меня нет никакого необычного калькулятора, было бы намного легче определить уравнение в Mathematica и передать известные параметры для вычисления неизвестных значений.

Я был бы очень благодарен, если бы кто-нибудь из вас мог привести пример решения (если возможно, используя данное уравнение).

Допустим, у нас есть уравнение скорости спутника в данной точке на эллиптической орбите:

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

, где

v = скорость и = константа 3,986 * 10 ^ 14 м ^ 3 / с ^ 2 r = радиус (расстояние от центра Земли) а = большая полуось эллипса

Это уравнение может быть использовано для расчета скорости или, например, мы знаем, какая скорость необходима для маневра, чтобы переместить груз на другую орбиту и должна моделировать орбиту (а) на заданном радиусе (r)

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Немного поздно :) ... но 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

НТН! ...

1 голос
/ 13 сентября 2009

Вы можете определить уравнения в Mathematica, используя оператор ": =". Чтобы определить пример уравнения:

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

Я не уверен, как обобщить это, чтобы решить для любого неизвестного ... Если я выясню это, я вернусь к вам.

Вы можете попробовать что-то вроде:

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

, который решит для r, если вы знаете v, u, и ... вы можете затем заменить каждый из параметров на неизвестное ...

...