MATLAB中错误使用plot,无法从sym转换为double问题,求大神!!

2024-12-05 07:03:25
推荐回答(1个)
回答1:

原因是,求出来的y表达式中有变量a。

 

参考代码:

[x1,x2,x3,x4]=solve('x1-(x3*exp(-(0.4*a+0.7)*2/3)*1.109*0.5*1e5+x4*exp(-(a+0.7)*2/3)*1.109*1e5)*1.22*1e11/(1.22*1e11+(x3*exp(-(0.4*a+0.7)*2/3)*1.109*0.5*1e5+x4*exp(-(a+0.7)*2/3)*1.109*1e5))=0','x2-x1*exp(-0.7)=0','x3-x2*exp(-0.7)=0','x4-x3*exp(-0.7-4*a/15)-x4*exp(-2*a/3-0.7)=0');
syms a
y=17.86.*x3.*(-(4.*a.*(exp(-7/15).*exp(-(4.*a)/15) - 1))/(4.*a + 7))+22.99.*x4.*(-(10.*a.*(exp(-7/15).*exp(-(2.*a)/3) - 1))/(10. *a + 7));
a=[0:30];
plot(a,subs(y(2)));

注意,符号运算在不同个版本中可能有差别,我用的是2008a。