|
汽车零部件采购、销售通信录 填写你的培训需求,我们帮你找 招募汽车专业培训老师
请教各位朋友,我有个非线性问题纠结了很久,请各位帮忙,问题是这样的:我想要求解一个含变参数的单变量非线性方程-MATLAB,我的调用函数是
clear
global a cmod D GI s1 sa1 s2 sa2 fa
cmod=0.1214;D=600;GI=66.2454;
syms x a
s1=int(sqrt((1-x/a)^2+(1.081-1.149*a/D)*(x/a-(x/a)^2)),x,240,a);s2=int((1-x/a)^2+(1.081-1.149*a/D)*(x/a-(x/a)^2),x,240,a);
sa1=simple(s1);sa2=simple(s2);
a=fzero('fz',335)
M文件中的定义函数为
function fa=fz(a)
syms a cmod D GI
syms s1 sa1 s2 sa2 fa
cmod=0.1214;GI=66.2454;
fa=1000/(a-240)*(2.79*cmod*sa1-19.4811*cmod^2*sa2)-GI;
单变量为a,可是求解总是提示错误如下:
??? Function 'isfinite' is not defined for values of class 'sym'.
Error in ==> fzero at 309
elseif ~isfinite(fx) || ~isreal(fx)
经查看,309行显示如下:
elseif ~isfinite(fx) || ~isreal(fx)
error('MATLAB:fzero:ValueAtInitGuessComplexOrNotFinite',...
'Function value at starting guess must be finite and real.');
请问是怎么回事,该怎样改动,才能求得a的值? |
|