我如何能解决一个三次方程和宽范围的T和P ?

1视图(30天)
我要计算体积就是secu * tanu减去VdW使用。它正常工作与分配值,但我想计算P和T值的使用范围。
R = 8.314;
Tc = 304.1282;
电脑= 7.3773 * 1000;
= (27/64)* (R ^ 2 * Tc ^ 2 / Pc);
b = (R * Tc) / (8 * Pc);
T = 350;%,而不是350,我想计算出从250年到350年
P = 5;%我也一样,我希望从5到70 P值
= 1;
B = - (B + ((R * T / P));
C = / P;
(D =) - (a * b / P);
% * V ^ 3 - B * V ^ 2 + C * V - D = 0
vdw = [A B C D];
就是secu * tanu减去vdw V =实际(根());
Vg = max (V);

答案(2)

约翰D 'Errico
约翰D 'Errico 2022年12月19日
MATLAB为根不提供一个区间算法的解决方案。(永远也不会这样做,我预测。)这将变得相当复杂,如果你甚至试图在某种形式使用区间算术,因为根会经常为一些复杂的参数值。
你可以使用不同的参数值,然后调用根多次,并记录不同的根发现?是的。但是要小心,因为根很容易“交换”的地方如果这对你很重要。无论如何,只不过这需要一个循环。(你能得到的,并使用arrayfun,创建一个隐式循环内部?是的。但简单写一个简单的for循环,使用和调试,最终不会慢。)

沃尔特·罗伯森
沃尔特·罗伯森 2022年12月19日
Q = @ (v)信谊(v);
R = Q (8314) / Q (1000);
Tc Q =问(3041282)/ (10000);
电脑=问(73773)/ Q (10000) * Q (1000);
= (Q (27) / Q (64)) * (R ^ 2 * Tc ^ 2 / Pc);
b = (R * Tc) / (8 * Pc);
信谊T% 250 - 350
信谊P% 5到70
Q = (1);
B = - (B + ((R * T / P));
C = / P;
(D =) - (a * b / P);
% * V ^ 3 - B * V ^ 2 + C * V - D = 0
信谊V
vdw = [A B C D];
就是secu * tanu减去VDW VDW = poly2sym (V)
就是secu * tanu减去VDW V =解决(,“maxdegree”3)
你现在可以研究diff (V, T)为T,寻找临界点和diff (V, P)寻找临界点P .当我看着diff (V, T)我发现没有临界点在250到350之间。这意味着你可以用研究的范围值区间的端点。
我没有检查diff (V, P)

类别

找到更多的在数值积分和微分帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!