【发布时间】:2012-06-13 19:15:00
【问题描述】:
我正在尝试绘制一个使用 NSolve 部分获得的参数方程。这是我尝试的代码:
VolumeDiff[v_] = 1.7 - v
SolveR[ v_] =
Re[NSolve[16 v^2 - 16 v*(r^3) + 3 (r^2) + 1 == 0, r, Reals]]
EnergyPos[r_] = r/2 (r + Sqrt[r^2 - 1])
EnergyNet[r_] = EnergyPos[SolveR[r]] + EnergyPos[SolveR[VolumeDiff[r]]]
ParametricPlot[{Re[EnergyNet[x]], 1.7 - 2. x}, {x, .1, 1.6}]
基本上,我有一个包含两个变量的三次方,我求解一个给定另一个变量,并尝试根据该原始给定变量绘制两个参数方程。这应该是连接在一起的两个气泡的能量与体积差异的图表。但是,我的轴是空白的。我使用 NSolve 来隔离三次方程的实根,我猜 Mathematica 在涉及 NSolve 的绘图时存在问题。我浏览了整个互联网,但找不到任何答案。谢谢你的帮助! 大卫
【问题讨论】:
-
您可以在更改
SolveR[v_?NumericQ] := NSolve[16 v^2 - 16 v*(r^3) + 3 (r^2) + 1 == 0, r, Reals][[1, 1, 2]]的定义方面取得一些进展。外部的Re[]似乎是多余的。 -
谢谢。我实际上之前没有 Re[] 但我认为在尝试绘制答案的真实部分时它不会受到伤害。如果你不介意我问,[[1,1,2]] 在那里最后做了什么?
-
它选择第一个解决方案,因为您的方程是二次的。
-
@b.gatessucks 这个方程在我看来是三次方的,在感兴趣的区间中只有一个实根
-
@belisarius 你是对的,我的错。谢谢。
标签: math wolfram-mathematica plot