FullSimply不等式,然后在Mathematica 7中重新排列它们

skr*_*skr 5 wolfram-mathematica mathematical-expressions

我在笔记本界面中使用Mathematica 7,我想重新排列不等式,以便我在一侧获得某个变量.例如.

FullSimplify[x^3+L+r>3x^3+2r]
Run Code Online (Sandbox Code Playgroud)

L > r + 2 x^3
Run Code Online (Sandbox Code Playgroud)

但是,我想:

r < L-2x^3
Run Code Online (Sandbox Code Playgroud)

无论如何我们可以指示FullSimplify以特定方式订购变量吗?我也在使用Mathematica进行演示,所以我安排变量的方式对我来说非常重要.

谢谢

SR

编辑:我尝试了Reduce,虽然这适用于这个例子,它不适用于我的实际表达式,我得到一个错误说,

 This system cannot be solved with the methods available to Reduce.
Run Code Online (Sandbox Code Playgroud)

编辑:这是实际的表达式:

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

我希望以\[delta]< *something* 谢谢的形式显示!

rco*_*yer 2

首先,让 Mathematica 准确地输出你想要的东西就像是一门黑魔法,需要很大的耐心。也就是说,如果你Reduce按照贝利撒留的说法应用到原来的表达式,你会得到

In[1]:=Reduce[x^3 + L + r > 3 x^3 + 2 r, r, Reals]
Out[1]:= r < L - 2 x^3
Run Code Online (Sandbox Code Playgroud)

然而,正如您所指出的,这不是完整的表达式,并且Reduce在应用时产生的结果只能被描述为不太有用的答案。此时需要耐心和大量额外的处理。我会开始

In[2]:=Reduce[ <full expression>, Delta, Reals] // LogicalExpand // Simplify
Run Code Online (Sandbox Code Playgroud)

虽然这并没有给您一个明确的答案,但它比以前更好,并且揭示了解决方案的更多结构。(我不会使用FullSimplify它,因为它Delta与其他术语混合在一起。)此时,我们需要更多地了解术语本身,并且输出In[2]并不像我们想要的那么有用。

我将重新扩展它,为LogicalExpand您提供十二个术语,这些术语比单独给出的术语要简单得多Reduce。(您会注意到,只有最后六个术语实际上涉及Delta,因此我会检查变量条件是否实际上与这些条件匹配。)仅选择最后六个术语,

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)
Run Code Online (Sandbox Code Playgroud)

第三项是同义反复,但Simplify似乎也FullSimplify无法删除它。无论如何,我们实际上只对中期感兴趣。如果Omega > 0您的表达式可以通过提取%[[2,1,2]]

将所有这些放在一个表达式中:

In[4]:=Simplify[LogicalExpand[Reduce[<expression>, Delta, Reals]]][[-6;;]] //
       Simplify // #[[2,1,2]]&
Out[4]:= Delta < something
Run Code Online (Sandbox Code Playgroud)

写完之后,我意识到有一种更简单的方法可以解决这个问题。我将重做上面的第 2 行,如下所示:

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

或者,只要您确实知道m != 0并且Omega > 0可以做到

In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand // 
        Simplify // #[[2]]&
Run Code Online (Sandbox Code Playgroud)