Question

J'utilise Mathematica 7 dans l'interface bloc-notes et je veux réorganiser une inégalité de sorte que je reçois une certaine variable d'un côté. Pour exemple.

FullSimplify[x^3+L+r>3x^3+2r]

donne

L > r + 2 x^3

Cependant, je veux:

r < L-2x^3

Y at-il de toute façon, nous pouvons demander FullSimplify à des variables de commande d'une manière particulière? J'utilise Mathematica pour la présentation et ainsi, la façon dont j'arrangerai les variables est important pour moi.

Merci

SR

Edit: J'ai essayé Réduire, tout cela fonctionne pour cet exemple, il ne fonctionne pas pour l'expression réelle que je l'ai, je reçois une erreur disant:

 This system cannot be solved with the methods available to Reduce.

Edit: voici l'expression réelle:

{L - (m^2 ((-2 + e)^2 \[Delta] + (5 + 
     2 e (-7 + 4 e)) \[Tau]) \[Omega])/(36 (2 - 3 e + e^2)^2)} > {0}

Je veux que ce soit affiché sous forme de \[delta]< *something* Merci!

Était-ce utile?

La solution

Tout d'abord, se Mathematica à quelque chose de sortie exactement comme vous le feriez comme il est quelque chose d'un art noir, et nécessite beaucoup de patience. Cela dit, si vous appliquez Reduce à l'expression originale, comme par Bélisaire , vous obtiendrez

In[1]:=Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]
Out[1]:= r < L - 2 x^3

Cependant, comme vous l'avez dit, ce n'est pas la pleine expression, et Reduce produit ce qui ne peut être décrit comme moins de réponse utile lorsqu'il est appliqué. Il est à ce point où la patience et beaucoup de traitement supplémentaire est nécessaire. Je commence par

In[2]:=Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify

Bien que cela ne vous donne pas une réponse propre, il vaut mieux qu'avant et révèle plus de la structure de votre solution. (Je ne voudrais pas utiliser FullSimplify comme mélanges que Delta avec les autres termes.) À ce stade, nous devons en savoir plus sur les termes eux-mêmes, et la sortie de In[2] est pas tout à fait aussi utile que nous voulons.

Je re-développer avec ce LogicalExpand qui vous donne douze termes qui sont nettement plus simple que la seule donne ce que Reduce. (Vous remarquerez que seuls les six derniers termes impliquent effectivement Delta, donc je vérifier que les conditions variables correspondent effectivement celles-ci.) La sélection de ces six derniers termes seulement,

In[3]:=%2[[-6;;]] // Simplify
Out[3]:= m != 0 
       && ((Omega > 0 && Delta < something) || (Omega > 0 && Delta < something else)
       && (1 < e < 2 || e < 1 || e > 2)

Le troisième terme est tautologique, mais ne Simplify FullSimplify peut ne pas sembler l'enlever. Et nous sommes vraiment seulement intéressé à moyen terme de toute façon. Si Omega > 0 votre expression peut ensuite être extrait par %[[2,1,2]].

Mettre tout cela ensemble dans une seule expression:

In[4]:=Simplify[LogicalExpand[Reduce[<expression>, Delta, Reals]]][[-6;;]] //
       Simplify // #[[2,1,2]]&
Out[4]:= Delta < something

Après avoir écrit, je réalise qu'il ya une manière beaucoup plus simple d'aborder ce sujet. Je refais la ligne 2, ci-dessus, comme suit:

In[5]:= Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify //
       Cases[#, ___ && Delta < _ && ___, Infinity]&
Out[5]:= {Omega > 0 && Delta < something}

Ou bien, vous ne fassiez vraiment savoir que m != 0 et Omega > 0 vous pouvez faire

In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand // 
        Simplify // #[[2]]&

Autres conseils

Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]

Fera.

Comme je ne l'utilise Mathematica pour l'édition ou de la présentation, peut-être quelqu'un d'autre peut venir avec quelques conseils supplémentaires.

Modifier

en fonction de votre commentaire, vous pouvez essayer:

Reduce[{L - (m^2 ((-2 + e)^2 Delta + (5 + 
        2 e (-7 + 4 e)) Tau) Omega)/(36 (2 - 3 e + e^2)^2) > 0}, Delta, Reals]  

Là où je corrige quelques erreurs de syntaxe. Mais vous constaterez que l'expression résultante est plutôt désagréable. Pour simplifier encore vous devez connaître les plages valides pour votre vars. S'il vous plaît poster cette information si vous l'avez. HTH!

Vérifier la sortie du

r=Simplify[Reduce[L-(m^2((-2+e)^2\\[Delta]+(5+2e(-7+4e))\\[Tau])\\[Omega])/(36(2-3e+e^2)^2)>0,\\[Delta],Reals]]  

voir que

r[[2,1,1,1]] gives \\[Delta]>expr, 

r[[2, 1, 2, 2]] gives \\[Delta]< expr, 

parce que le signe de \ [Omega] dans le dénominateur de expr. Tout cela ne tient pas compte des autres conditions sur les valeurs de L, e, m et \ [Omega] qui va changer le résultat et les différentes versions de Mathematica peuvent changer la forme du résultat de simplifier [Réduire []] qui annule tout cela .

Une partie de la difficulté à réduire les expressions renvoyées par plus [] et LogicalExpand [] est que l'expression fournie implique une division par zéro lorsque e = 1 ou 2 =.

Je reçois quelque chose bearably compact avec

Assuming[{
  (L | m | e | Tau | Omega | Delta) \[Element] Reals
  },
 FullSimplify[
  LogicalExpand[
   Reduce[{L - (m^2 ((-2 + e)^2 Delta + (5 + 
               2 e (-7 + 4 e)) Tau) Omega)/(36 (2 - 3 e + e^2)^2) > 
      0}, Delta, Reals]
   ]
  ]
 ]
Out[]:= (L > 0 && (1 < e < 2 || e < 1 || e > 2) && (m == 0 || Omega == 0)) || 
    (m != 0 && (
      (Omega > 0 && 
       Delta < (36 (-1 + e)^2 L)/(m^2 Omega) + ((-5 + 2 (7 - 4 e) e) Tau)/(-2 + e)^2) || 
      (Delta > (36 (-1 + e)^2 L)/(m^2 Omega) + ((-5 + 2 (7 - 4 e) e) Tau)/(-2 + e)^2 && 
       Omega < 0)) && 
    (e > 2 || e < 1 || 1 < e < 2))

où je l'ai dépensé aucun effort pour remplacer les noms de symboles avec des symboles.

(Pourquoi l'hypothèse [...]? Parce que je suis trop paresseux pour se rappeler d'obtenir les mêmes hypothèses coincées dans chaque étape de simplification.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top