5

ノートブック インターフェイスで Mathematica 7 を使用していますが、片側に特定の変数が得られるように不等式を再配置したいと考えています。たとえば。

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

与える

L > r + 2 x^3

しかし、私は欲しい:

r < L-2x^3

FullSimplify に変数を特定の方法で順序付けするように指示できる方法はありますか? プレゼンテーションにも Mathematica を使用しているので、変数の配置方法は私にとって重要です。

ありがとう

SR

編集:Reduceを試しましたが、この例では機能しますが、実際の式では機能しません。次のエラーが表示されます。

 This system cannot be solved with the methods available to 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]< *something* これをThanks!という形で表示してほしいです!

4

4 に答える 4

2

まず第一に,Mathematica にあなたが望むものを正確に出力させることは,黒魔術のようなものであり,多くの忍耐を必要とします.とはいえ、ベリサリウスReduceのように元の表現に適用すると、次のようになります。

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

しかし、あなたが指摘したように、これは完全な表現ではなく、Reduceそれに適用されたときに役に立たない答えとしてしか説明できないものを生成します. この時点で、忍耐と多くの余分な処理が必要になります。私はから始めます

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

これで明確な答えが得られるわけではありませんが、以前よりも改善され、ソリューションの構造がより明らかになります。(他の用語とFullSimplify混同するので、私は使用しませんDelta。) この時点で、用語自体についてもっと知る必要がありIn[2]ます。

これをもう一度拡張すると、 12 の用語が得られます。これらの用語は、単独で得られるLogicalExpandものよりもはるかに単純です。Reduce(最後の 6 項のみが実際に を含むことに注意してDeltaください。そのため、変数条件が実際にそれらと一致することを確認します。) 最後の 6 項のみを選択すると、

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)

第 3 項はトートロジーですが、削除することSimplifyもできません。FullSimplifyとにかく、私たちは本当に中期にしか興味がありません。Omega > 0式を で抽出できる場合%[[2,1,2]]

これをすべて 1 つの式にまとめると、次のようになります。

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

それを書いた後、これにアプローチするもっと簡単な方法があることに気付きました。上記の 2 行目を次のようにやり直します。

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

または、あなたが本当にそれを知っていてm != 0Omega > 0できるなら

In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand // 
        Simplify // #[[2]]&
于 2010-10-29T18:33:43.330 に答える
1
Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]

しましょう。

私は編集やプレゼンテーションに Mathematica を使用していないので、他の誰かが追加のアドバイスをしてくれるかもしれません。

編集

あなたのコメントに基づいて、あなたは試すことができます:

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]  

いくつかの構文エラーを修正した場所。しかし、結果として得られる式はかなり不快であることがわかります。さらに単純化するには、変数の有効な範囲を知る必要があります。その情報があれば投稿してください。チッ!

于 2010-10-29T16:19:22.043 に答える
0

Reduce[]およびLogicalExpand[]によって返される式を減らすことの難しさの一部は、e=1または=2の場合に提供される式がゼロによる除算を伴うことです。

私は耐えられるほどコンパクトなものを手に入れます

仮定[{
  (L | m | e |タウ|オメガ|デルタ)\[要素]実数
  }、
 FullSimplify [
  LogicalExpand [
   削減[{L-(m ^ 2((-2 + e)^ 2デルタ+(5 +
               2 e(-7 + 4 e))タウ)オメガ)/(36(2-3 e + e ^ 2)^ 2)>
      0}、デルタ、リアル]
   ]
  ]
 ]
Out []:=(L> 0 &&(1 <e <2 || e <1 || e> 2)&&(m == 0||オメガ==0))||
    (m!= 0 &&(
      (オメガ> 0 &&
       デルタ<(36(-1 + e)^ 2 L)/(m ^ 2オメガ)+((-5 + 2(7-4 e)e)タウ)/(-2 + e)^ 2)||
      (デルタ>(36(-1 + e)^ 2 L)/(m ^ 2オメガ)+((-5 + 2(7-4 e)e)タウ)/(-2 + e)^ 2 &&
       オメガ<0))&&
    (e> 2 || e <1 || 1 <e <2))

ここでは、シンボル名をシンボルに置き換えるための労力を費やしていません。

(なぜ仮定する[...]?私は怠惰すぎて、同じ仮定を各単純化ステップに詰め込むことを覚えておくことができないからです。)

于 2010-11-04T02:31:04.960 に答える
0

の出力を調べます

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

それを見るために

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

しかし

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

expr の分母に \[Omega] の記号があるためです。これはすべて、結果を変更する L、e、m および \[Omega] の値に関する他の条件を無視し、Mathematica のバージョンが異なると、Simplify[Reduce[]] からの結果の形式が変更され、これらすべてが無効になる可能性があります。 .

于 2010-10-29T22:54:08.123 に答える