使用Mathematica获得交叉线的等式

时间:2013-11-18 02:00:17

标签: wolfram-mathematica

我有一个讨厌的表情,我正在玩Mathematica。

( - X +(2 X - X ^ 2)/(  2(-1 + X)^ 2((1 + 2(-1 + p)X - ( - 1 + p)X ^ 2)/( - 1 + X)^ 2)^(3/2))) / X

我将它与平面z = 0一起绘制,其中X和p都被限制在0到1之间:

Plot3D [{nasty equation is here,0},{p,0,1},{X,0,1}]

我认为获得由讨厌方程生成的平面与z = 0的交点的方程式会很有趣。所以我使用求解:

解决[{令人讨厌的等式== 0},{p,X},Reals]

并且输出甚至更糟糕,其中一些结果中包含#符号(我不知道它是什么,我是Mathematica的新手)。有没有办法得到令人讨厌的方程和z = 0之间的良好交线的方程式,其中p和X被限制在0到1之间?在从Plot3D生成的图表中,我看到交叉线似乎是一些漂亮的半抛物线外观。如果可能的话,我想要这个等式。谢谢!

1 个答案:

答案 0 :(得分:1)

对于复杂的讨厌方程式,Reduce通常更强大,并且不太可能给你一些你后来发现在结果中隐藏假设的东西。注意我包含关于p和X范围的约束,以减少最大量 我可以帮助它为您提供最简单的解决方案的信息。

In[1]:= Reduce[(-X + (2 X-X^2)/(2 (-1 + X)^2 ((1 + 2 (-1 + p) X - (-1 + p) X^2)/
   (-1 + X)^2)^(3/2)))/X == 0 && 0 < X < 1 && 0 < p < 1, {X, p}]

Out[1]= 0<X<1 && p == Root[12 - 47*X + 74*X^2 - 59*X^3 + 24*X^4 - 4*X^5 + (-24 +
   108*X - 192*X^2 + 168*X^3 - 72*X^4 + 12*X^5)*#1 + (-48*X + 144*X^2 - 156*X^3 +
   72*X^4 - 12*X^5)*#1^2 + (-32*X^2 + 48*X^3 - 24*X^4 + 4*X^5)*#1^3 & , 1]

Root是Mathematica函数,表示通常复杂的多项式的根 如果实际的根在代数中写出来,那通常会大得多,但我们 可以通过使用ToRadicals查看结果是否可以理解为有用。 通常,Reduce将使用&amp;&amp;&amp ;; (和)和|| (或者 让您看到正确使用结果必须了解的详细信息。看我怎么样 复制整个Root [...]并将其放入ToRadicals中。注意Reduce如何返回 答案包括有关变量范围的信息。并且看看我如何简化X的域信息以允许它提供最大可能的简化。

In[2]:= Simplify[ToRadicals[Root[12 - 47 X + 74 X^2 - 59 X^3 + 24 X^4 - 4 X^5 +
   (-24 + 108 X - 192 X^2 + 168 X^3 - 72 X^4 + 12 X^5) #1 + (-48 X + 144 X^2 -
   156 X^3 + 72 X^4 - 12 X^5) #1^2 + (-32 X^2 + 48 X^3 - 24 X^4+ 4 X^5)#1^3&,1]],
   0 < X < 1]

Out[2]= (8*X - 24*X^2 + 26*X^3 - 12*X^4 + 2*X^5 + 2^(1/3)*(-((-2 + X)^8*(-1 +
   X)^2*X^3))^(1/3))/(2*(-2 + X)^3*X^2)

所以你想要的答案z = 0将是X不为零,以避免0/0 in 你原来的等式,其中0&lt; X&lt; 1,0 <&lt; p&lt; 1,其中p是其根 X中的最终复杂表达式。结果是一个分数并成为你的根 可能会看一下分子的零位置,看看你是否可以得到更多 关于你在寻找什么的信息。

有时你可以通过绘制表达来学习一些东西。如果你试图绘制最终结果,你可能会得到轴,但没有绘图。也许分母正在引发问题。您可以尝试仅绘制分子。你可能会再次获得一个空图。也许是你的立方根提供了复杂的价值观。所以你可以将你的分子放在Re []中并绘制,然后重复,但使用Im []。这些将让你只绘制实部和虚部。您这样做是为了尝试了解根源的位置。你应该对情节保持谨慎,因为有时,特别是对于复杂讨厌的表情,情节可能会犯错误或隐藏你想要的信息,但是如果小心使用,你通常可以从中学到一些东西。

并且,一如既往地,非常仔细地测试这个和其他一切,以确保没有犯错误。很容易“在Mathematica中输入一些东西,得到一些东西”,认为你有答案,并且不知道隐藏了重大错误。