【问题标题】:Getting the equation for the line of intersection using Mathematica使用 Mathematica 获得相交线的方程
【发布时间】:2013-11-18 02:00:17
【问题描述】:

我在 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[{讨厌的方程在这里, 0}, {p , 0, 1}, {X, 0, 1}]

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

求解[{that nasty equation == 0}, {p, X}, Reals]

而且输出更糟糕,其中一些结果带有 # 符号(我不知道它是什么,而且我是 Mathematica 的新手)。有没有办法为讨厌的方程和 z = 0 之间的良好交线得到一个方程,其中 p 和 X 被限制在 0 到 1 之间?在 Plot3D 生成的图表中,我看到相交线看起来是一些看起来不错的半抛物线。如果可能的话,我想要这个等式。谢谢!

【问题讨论】:

标签: wolfram-mathematica


【解决方案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 会使用 && (and) 和 || 返回几个不同的选择。 (或者 让您看到正确使用结果必须了解的细节。看我如何 复制整个 Root[...] 并将其放入 ToRadicals 中。注意 Reduce 如何返回 答案包括有关变量范围的信息。并查看我如何为 Simplify 提供有关 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 在 你的原始方程,其中 0

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

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

【讨论】:

  • 非常感谢您,好心的先生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
相关资源
最近更新 更多