作业帮 > 综合 > 作业

用matlab lsqcurvefit使用的问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 04:22:55
用matlab lsqcurvefit使用的问题
在用matlab进行lsqcurvefit拟合时,
m文件为:function y=fit(x,xd)
y=50*x(1)./(x(1)-x(2))*(exp(-x(2)*xd)-exp(-x(1)*xd))
在command windows窗口里代码是:
x=1:31
y=[1 1 8 14 30 11 8 7 17 11 5 4 0 8 7 2 4 2 5 2 1 6 2 4 5 10 1 3 3 0 6];
c0=[2,0.1]; %初始值
c=lsqcurvefit(‘fit’,c0,x,y)
c就是我要拟合值
为什么求出来的c一直是[2,0.1],就和初始值一样啊,没有变过
function y=yuww(x,xd)                                  %  保存为yuww.m 文件,反正不要是fity=50*x(1)./(x(1)-x(2))*(exp(-x(2)*xd)-exp(-x(1)*xd));--------------------------------------------------------------------------------------运行以下:clear;clcx=1:31;y=[1 1 8 14 30 11 8 7 17 11 5 4 0 8 7 2 4 2 5 2 1 6 2 4 5 10 1 3 3 0 6];c0=[2,0.1];    %初始值c=lsqcurvefit('yuww',c0,x,y)plot(x,y,'r*-')hold onplot(x,yuww(c,x))  
再问: 非常感谢,我如果想让曲线拟合的更好,这个初始值怎么办?非常感谢你的解答
再答: 没办法
再问: 是不是要自己手动反复设定参数的初始值?然后选择最佳的?
再答: 是的