我正在尝试使用MatLab中的以下代码绘制一张图
pressure = linspace(10,2000,1000);
eqn = ((nh^2)/(1-nh))*(pressure*0.0680459639) == 0.136;
y1 = max(vpa(solve(eqn, nh)));
figure(2)
scatter(presssure, y1)
hold on
plot(pressure, 1-y1)
hold off
但是出现了这个错误:“输入参数必须可以转换为浮点数。”为
y1 = max(vpa(solve(eqn, nh)));
你能帮我找出我的代码出了什么问题吗?我能不能用这种方法画一张图?谢谢!
编辑:在我把它分成“solve”之后:
pressure = linspace(10,2000,1000);
eqn = ((nh^2)/(1-nh))*(pressure*0.0680459639) == 0.136;
y1 = solve(eqn, nh);
警告:解决方案由符号Z参数化。若要在解决方案中包括参数和条件,请将‘ReturnConditions’值指定为‘True’。
在ae433hw5(第31行)的sym/solve(第357行)中的sym/solve>warnIf Params(第475行)警告:解决方案仅在某些条件下有效。若要在解决方案中包括参数和条件,请将“ReturnConditions”值指定为“”True“”。“”在ae433hw5(第31行)的sym/solve(第357行)中的sym/solve>warnIfParams(第478行)中
1条答案
按热度按时间nkcskrwz1#
我认为这里的问题是,您试图在解等式之前使用公式中的一个数组,这会导致MatLab崩溃。我所做的是将“nh”转换成一个符号变量,创建另一个符号变量“p”来表示压力,然后求解nh的方程,然后用“p”符号代替你的“压力”数组,然后应用vpa和max函数。这为我提供了一张图表和一组方程式的解。