![]() |
【求助】关于非线性最小二乘拟合中的问题~
函数定义如下,需拟合其中的参数a
function y=c8(a,x) syms z; g=z.^(a(1)-1).*(1-z).^(a(2)-1); y(1)=int(g,z,0,x(1))./int(g,z,0,1); y(2)=int(g,z,0,x(2))./int(g,z,0,1); 调用如下: x=[0.27,0.83]; y=[0.25,0.75]; m=double(c8([2;3],x)) n=lsqcurvefit('c8',[2;3],x,y) 结果如下: m = 0.2959 0.9829 ??? Function 'isfinite' is not defined for values of class 'sym'. Error in ==> optim\private\snls at 275 if any(~isfinite(fvec)) Error in ==> optim\private\lsqncommon at 213 [x,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msg]=... Error in ==> lsqcurvefit at 165 [x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ... Error in ==> m0524 at 4 n=lsqcurvefit('c8',[2;3],x,y) m值已经得出,因此函数的定义应该是没有问题的。应该是函数与lsqcurvefit之间出了问题。同样应用非线性最小二乘拟合函数nlinfit时,也出现了同样的问题。请高手指点下啊~~谢谢!!! ps.偶一碰到这种转到matlab提供的函数内部的错误,就晕拉:confused: ~~~高手们是怎么从中找到问题所在的哪? |
所有时间均为北京时间。现在的时间是 09:02。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.