2009-09-13 9 views
3

Actuellement j'utilise une équation unique avec une combinaison différente de paramètres connus/inconnus. Comme je n'ai pas de calculatrice de fantaisie, il serait beaucoup plus facile de définir l'équation dans Mathematica et de passer des paramètres connus pour calculer des valeurs inconnues.Mathematica: Comment utiliser une seule équation avec plusieurs paramètres pour calculer un paramètre

Je serais très reconnaissant si quelqu'un d'entre vous pourrait donner un exemple de solution (si possible en utilisant l'équation donnée).

Disons que nous avons une équation de la vitesse du satellite au point donné de l'orbite elliptique:

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

v = vitesse u = constante 3,986 * 10^14 m^3/s^2 r = rayon (distance du centre de la Terre) a = demi-grand axe de l'ellipse

Cette équation peut être utilisée pour calculer le sp eed ou par exemple nous savons quelle est la vitesse nécessaire pour une manœuvre pour déplacer la cargaison vers une autre orbite et pour modéliser l'orbite (a) à un rayon donné (r)

Merci!

Répondre

1

Vous pouvez définir des équations dans Mathematica à l'aide de l'opérateur ": =". Pour définir l'équation d'exemple:

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

Je ne sais pas comment généraliser à résoudre pour tout inconnu ... Si je figure dehors, je vais vous revenir.

Vous pouvez essayer quelque chose comme:

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

qui résoudra pour r en supposant que vous savez v, u, et ... vous pouvez alors changer chacun des paramaters pour l'inconnu ...

1

Un peu en retard :) ... mais Reduce [] fait ce que vous voulez. Nous définissons une fonction:

solveForMe[rules_] := Reduce[(v == Sqrt[3.986*10^14 *(2/r - 1/a)]) /. rules]; 

et de l'appeler avec une combinaison valide pour les affectations. Par exemple:

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}] 

La sortie est:

Out[73]= v == 7546.05 

Out[74]= a == 3.5*10^6 

Out[75]= r == 1.4*10^7 

HTH! ...

Questions connexes