如何解决两个函数有两个未知变量和一组知道变量使用fsolve函数吗?
4视图(30天)
显示旧的评论
大家好。
我试图让下面的代码来解决未知变量(x(1),(2)在不同温度(T)。我可以解决系统使用fsolve函数只有当我走进T值马努Psat_f作用。然而,我想做一个循环为T的范围计算,可以得到一个表的发现在每一个温度。
我新的matlab。我感谢任何帮助的技巧在这方面。
我的代码是:
%确定饱和蒸汽压,饱和液体压力,&
%在不同温度下饱和压力。
%条件:
% P_sat = = P_l = = P_v (F (1)) & & fugacity_l = = fugacity_v (F (2))。
R = 8.3145;%通用气体常数MPa.cm3 / (K.mol)
一个= 553661.24;就是secu * tanu减去vdW %常数MPa.cm6 / mol2水
b = 30.49;就是secu * tanu减去vdW %常数b为水立方厘米/摩尔
Tc = 8 * a / b (27 * * R);
电脑= a / b (27 * ^ 2);
为T = 274: 1: 674
x0 = [32 3000];
有趣= @Psat_f;
x = fsolve(有趣,x0);
六世= x (1,1);
vv = x (1、2);
P_l = R * T / (vl-b) /(六世^ 2);
P_v = R * T / (vv-b) / (vv ^ 2);
流(临时的凯西:% d,液体压力:% 4.4 f,蒸汽压:% 4.4 f,液体体积:% 4.4 f,蒸汽体积:% 4.4 f '六世,T P_l P_v vv);
结束
函数F = Psat_f (x)
R = 8.3145;
一个= 553661.24;
b = 30.49;
F (1) = (R * T / (x (1) - b) - a / (x (1) ^ 2)) - - - (R * T / (x (2) - b) - a / (x (2) ^ 2));
F (2) = ((1 / (1 - (b / x (1)))——/ (R * T * x(1))) 1 -日志((1 / (1 - (b / x (1)))——/ (R * T * x (1))) (((b * (R * T / (x (1) - b) - a / (x (1) ^ 2))) / (R (T))) (((* (R * T / (x (1) - b) - a / (x (1) ^ 2))) / (R * T) ^ 2) / (1 / (1 - (b / x (1)))——/ (R * T * x (1))))) ((1 / (1 - (b / x (2)))——/ (R * T * x(2))) 1 -日志((1 / (1 - (b / x (2)))——/ (R * T * x (2))) (((b * (R * T / (x (2) - b) - a / (x (2) ^ 2))) / (R (T))) (((* (R * T / (x (2) - b) - a / (x (2) ^ 2))) / (R * T) ^ 2) / (1 / (1 - (b / x (2)))——/ (R * T * x (2))));
结束
0评论
接受的答案
明星黾
2021年6月24日
的
“Psat_f”
函数需要作为参数——“T”
%确定饱和蒸汽压,饱和液体压力,&
%在不同温度下饱和压力。
%条件:
% P_sat = = P_l = = P_v (F (1)) & & fugacity_l = = fugacity_v (F (2))。
R = 8.3145;%通用气体常数MPa.cm3 / (K.mol)
一个= 553661.24;就是secu * tanu减去vdW %常数MPa.cm6 / mol2水
b = 30.49;就是secu * tanu减去vdW %常数b为水立方厘米/摩尔
Tc = 8 * a / b (27 * * R);
电脑= a / b (27 * ^ 2);
T = 274: 100: 674
为k = 1:元素个数(T)
x0 = [32 3000];
有趣= @ (x) Psat_f (x, T (k));
x = fsolve(有趣,x0);
六世= x (1,1);
vv = x (1、2);
P_l = R * T / (vl-b) /(六世^ 2);
P_v = R * T / (vv-b) / (vv ^ 2);
流(临时的凯西:% d,液体压力:% 4.4 f,蒸汽压:% 4.4 f,液体体积:% 4.4 f,蒸汽体积:% 4.4 f '六世,T P_l P_v vv);
:十五(k) = x;
结束
十五
函数F = Psat_f (x, T)
R = 8.3145;
一个= 553661.24;
b = 30.49;
F (1) = (R * T / (x (1) - b) - a / (x (1) ^ 2)) - - - (R * T / (x (2) - b) - a / (x (2) ^ 2));
F (2) = ((1 / (1 - (b / x (1)))——/ (R * T * x(1))) 1 -日志((1 / (1 - (b / x (1)))——/ (R * T * x (1))) (((b * (R * T / (x (1) - b) - a / (x (1) ^ 2))) / (R (T))) (((* (R * T / (x (1) - b) - a / (x (1) ^ 2))) / (R * T) ^ 2) / (1 / (1 - (b / x (1)))——/ (R * T * x (1))))) ((1 / (1 - (b / x (2)))——/ (R * T * x(2))) 1 -日志((1 / (1 - (b / x (2)))——/ (R * T * x (2))) (((b * (R * T / (x (2) - b) - a / (x (2) ^ 2))) / (R (T))) (((* (R * T / (x (2) - b) - a / (x (2) ^ 2))) / (R * T) ^ 2) / (1 / (1 - (b / x (2)))——/ (R * T * x (2))));
结束
我缩短了
“T”
向量,以便它不会暂停在线运行特性。我还保存的值
“x”
在
“十五”
矩阵。
。