Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2007-05-24, 12:47   #1
LaGeLang_Yue
初级会员
 
注册日期: 2007-05-22
帖子: 1
声望力: 0
LaGeLang_Yue 正向着好的方向发展
默认 【求助】关于非线性最小二乘拟合中的问题~

函数定义如下,需拟合其中的参数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提供的函数内部的错误,就晕拉 ~~~高手们是怎么从中找到问题所在的哪?
LaGeLang_Yue 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 06:12


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.