在matlab里这个方程怎么求解,其中只有v是未知数,要求的就是v的值,其他参数已知,v的初始值也不知道

在matlab里这个方程怎么求解,其中只有v是未知数,要求的就是v的值,其他参数已知,v的初始值也不知道
p=R*T/(v-b)+(A2+B2*T+C2*exp(-k*Tr))/(v-b)^2+(A3+B3*T+C3*exp(-k*Tr))/(v-b)^3+A4/(v-b)^4+(A5+B5*T+C5*exp(-k*Tr))/(v-b)^5;
R=81.4881629e-3;
k=5.475;
b=0.3455467e-3;
A2=-0.1195051;
B2=0.1137590e-3;
C2=-3.531592;
A3=0.1447797e-3;
B3=-0.8942552e-7;
C3=0.6469248e-2;
A4=-1.049005e-7;
A5=-6.953904e-12
B5=1.269806e-13;
C5=-2.051369e-9;
Tr=T/374.2;
p=R*T/(v-b)+(A2+B2*T+C2*exp(-k*Tr))/(v-b)^2....
+(A3+B3*T+C3*exp(-k*Tr))/(v-b)^3+A4/(v-b)^4.....
+(A5+B5*T+C5*exp(-k*Tr))/(v-b)^5;
p=572.1 T=293.15
limnmtes 1年前 已收到2个回答 举报

xeon401 幼苗

共回答了17个问题采纳率:94.1% 举报

这个方程基本不可能求出解析解,求数值解需要有那些参数的具体数值才行.
至于求解的具体方法,可以用fzero、fsolve或者优化工具箱的相关函数.
考虑到可能存在多个解,可以考虑用遗传算法进行多次求解.
以上就是基本思路,要想进一步解答,请楼主给出具体数据.

1年前 追问

4

举报 xeon401

参考代码:

R=81.4881629e-3;
k=5.475;
b=0.3455467e-3;
A2=-0.1195051;
B2=0.1137590e-3;
C2=-3.531592;
A3=0.1447797e-3;
B3=-0.8942552e-7;
C3=0.6469248e-2;
A4=-1.049005e-7;
A5=-6.953904e-12;
B5=1.269806e-13;
C5=-2.051369e-9;
T=293.15;
Tr=T/374.2;
p=572.1;
syms v
eq1=-p+R*T/(v-b)+(A2+B2*T+C2*exp(-k*Tr))/(v-b)^2....
+(A3+B3*T+C3*exp(-k*Tr))/(v-b)^3+A4/(v-b)^4.....
+(A5+B5*T+C5*exp(-k*Tr))/(v-b)^5;

[num,den] = numden(eq1);
r = roots(sym2poly(num));
r = r(abs(imag(r))y = subs(eq1,r)
clf
v = [0:1e-5:0.0003 0.00031:1e-6:0.0004 0.0005:1e-5:0.005 0.006:1e-4:0.04];
plot(v,subs(eq1))
hold on
plot(r,y,'ro')

ylim([-1 1]*1e3)

求出的实根为:

r =

0.035738703279219
0.004635322844890
0.000366751037287

yixuan1120 幼苗

共回答了1个问题 举报

j,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mnjjjjjjjjjjjjjjjjjjjjjjjjjuk

1年前

0
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.626 s. - webmaster@yulucn.com