我试图通过在Matlab中使用while循环来解决非线性方程,但是它没有给我结果并且给出了一个使用fzero函数的错误。
为什么会这样?如何解决这个问题?有人可以帮我吗? 提前谢谢。
function z=optp(z,p)
z=3.067;
p=0;
while (z-p) > 0.8
syms a y Q p
p=z;
w=3;
C=1;
P=5;
b=1.2;
c=8;
B=0.5;
R=A^B*c*p^-b;
Q=(0.5-1/(p+5))*2400*((A^0.5)/(p^(6/5)));
x=Q;
J1=int(int(a*x*0.01,y,a*x/R,100),a,0,Q/x);
J2=(b*x^2*0.01/R)*int(a^2*1,a,0,Q/x);
J3=(P*R*b/p)*(int(int(y*0.01,y,a*x/R,100),a,0,Q/x));
J4=(b*R^2/x)*int(y^2*0.01,y,0,Q/R);
J5=(R*0.2)*(int(int(y*0.01,a,y*R/x,1),y,0,Q/R));
J=J1+J3+J4-J2-J5;
z=fzero(@ (p) J,p)
end
end