FullSimply 不等式,然后在 Mathematica 7 中重新排列它们
-
27-09-2019 - |
题
我在笔记本界面中使用 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*
谢谢!
解决方案
首先,让数学输出的东西完全一样,你想它是一个黑色艺术,需要很大的耐心。这就是说,如果你申请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]
输出是不太有用,因为我们想要的。
我与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)
的第三项是不必要的,但也不Simplify
FullSimplify
似乎无法删除它。而且我们真的只是在中期感兴趣反正。如果你的Omega > 0
表达可以随后经由%[[2,1,2]]
被提取。
在一个表达一起把这样的:
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 != 0
和Omega > 0
你可以做
In[6]:= Reduce[ <expr> && m!=0 && Omega > 0, Delta, Reals ] // LogicalExpand //
Simplify // #[[2]]&
其他提示
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]
我纠正了一些语法错误。但你会发现结果的表达是相当不愉快的。为了进一步简化它,您需要知道变量的有效范围。如果您有该信息,请发布该信息。哈!
检查的输出
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中的分母的符号。所有这一切都忽略了的L,E,M的值和其他条件\欧姆,这将改变的结果和不同版本的Mathematica可以改变从简化结果的形式[缩小[]]这将无效所有的这
在减少由返回的表达式部分困难减少[]和LogicalExpand []是所提供的表达式由零涉及除法e = 1时或= 2。
我得到的东西与bearably紧凑
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))
在那里我已经付出任何努力用符号来代替符号名。
(为什么假设[...]因为我懒得记住要挤进每一步简化同样的假设。)