Math 绘制NSolve的结果

Math 绘制NSolve的结果,math,wolfram-mathematica,plot,Math,Wolfram Mathematica,Plot,我正试图绘制一个参数方程,它是使用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

我正试图绘制一个参数方程,它是使用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}]
基本上,我有一个有两个变量的立方体,我求解一个给定的另一个,并尝试根据原始给定变量绘制两个参数方程。这应该是两个气泡连接在一起的能量与体积差的关系图。然而,我的轴是空白的。我使用了solove来分离三次方程的实根,我想Mathematica在绘制solove时遇到了一个问题。我在网上到处找,但找不到任何答案。谢谢你的帮助! David纠正了几个错误。 您应该了解
SetDelayed(:=)
Solve[]
的工作原理

VolumeDiff[v_] := 1.7 - v
SolveR[v_] := NSolve[16 v^2 - 16 v*(r^3) + 3 (r^2) + 1 == 0, r, Reals][[1]]
EnergyPos[r_] := r/2 (r + Sqrt[r^2 - 1])
EnergyNet[r_] := EnergyPos[r /. SolveR[r]]+EnergyPos[r /. SolveR[VolumeDiff[r]]]
ParametricPlot[{EnergyNet[x], 1.7 - 2. x}, {x, .1, 2}]
纠正了几个错误。 您应该了解
SetDelayed(:=)
Solve[]
的工作原理

VolumeDiff[v_] := 1.7 - v
SolveR[v_] := NSolve[16 v^2 - 16 v*(r^3) + 3 (r^2) + 1 == 0, r, Reals][[1]]
EnergyPos[r_] := r/2 (r + Sqrt[r^2 - 1])
EnergyNet[r_] := EnergyPos[r /. SolveR[r]]+EnergyPos[r /. SolveR[VolumeDiff[r]]]
ParametricPlot[{EnergyNet[x], 1.7 - 2. x}, {x, .1, 2}]

您可以在更改定义方面取得一些进展
解算器[v_?NumericQ]:=NSolve[16v^2-16v*(r^3)+3(r^2)+1==0,r,Reals][[1,1,2]
。外部
Re[]
似乎多余。谢谢。事实上,我以前没有Re[],但我想当我试图绘制答案的真实部分时,这不会有什么坏处。如果你不介意我问的话,[[1,1,2]]在最后做了什么?它选择了第一个解,因为你的方程是二次的。@b.gatesuck就我看来,这个方程是三次的,在interest@belisarius你是对的,我错了。谢谢。更改定义
解算器[v_?NumericQ]:=NSolve[16v^2-16v*(r^3)+3(r^2)+1==0,r,Reals][[1,1,2]
。外部
Re[]
似乎多余。谢谢。事实上,我以前没有Re[],但我想当我试图绘制答案的真实部分时,这不会有什么坏处。如果你不介意我问的话,[[1,1,2]]在最后做了什么?它选择了第一个解,因为你的方程是二次的。@b.gatesuck就我看来,这个方程是三次的,在interest@belisarius你是对的,我错了。谢谢。非常感谢你的帮助。非常感谢你的帮助。