MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   【求助】关于非线性最小二乘拟合中的问题~ (https://www.labfans.com/bbs/showthread.php?t=228)

LaGeLang_Yue 2007-05-24 12:47

【求助】关于非线性最小二乘拟合中的问题~
 
函数定义如下,需拟合其中的参数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.