MATLAB Lsqcurvefit拟合问题 function F=cocl2(x,xdata)F = x(1).*(log(xdata)-1.023.*xdata.^0.5./(1+xdata.^0.5)+x(2).*xdata+x(3).*xdata.^1.5+x(4).*xdata.^2+x(5).*xdata.^2.5+x(6).*xdata.^3)-72.14;end xdata = [0;0.3036;0.6133;0.9418;1.248;1.561;2.232;2

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/01 09:31:34
MATLAB Lsqcurvefit拟合问题 function F=cocl2(x,xdata)F = x(1).*(log(xdata)-1.023.*xdata.^0.5./(1+xdata.^0.5)+x(2).*xdata+x(3).*xdata.^1.5+x(4).*xdata.^2+x(5).*xdata.^2.5+x(6).*xdata.^3)-72.14;end xdata = [0;0.3036;0.6133;0.9418;1.248;1.561;2.232;2
xU[oD+VPd3a-SPA5l [DJPKUR&x)m6}_`lgUB 4ҙ9ϙ͙O_xv1"/=?H?Çç4$Bm.#•^ډ]]Z`Ҋ\@b | z͏|jM 0V.p 2Z)J@TQ7%Fn`~7/jD'F-CAb0–"A0ceQn~uyYYYFS< f, f‚Y)Rš(0#`3*Wpk|S6j=X^GT-C"j2^lgaKo8|;~s>t֍QnUZAiL8J4/nٝFw Lxqs'6Hy6to*t2Za' T{OhW`6{\a".B1UOx`^ím3{S>xLfnFI.Ѳu3pHy|`BxoAA#[9Bz.:K F[K(!׷'%,AiB -_"ۊ7\;O ;a66ABs\^uNo[]U;w[ӽϲ'+ղme !กwiy߇*[v7Õ߆+ߦ,[}IUZ?f/k/7FO~cJ#uxqMcN~\Fi dJm@p|5<ףصI+%A^#S/Ab>ƆoؔIH>IӘ˱m/`

MATLAB Lsqcurvefit拟合问题 function F=cocl2(x,xdata)F = x(1).*(log(xdata)-1.023.*xdata.^0.5./(1+xdata.^0.5)+x(2).*xdata+x(3).*xdata.^1.5+x(4).*xdata.^2+x(5).*xdata.^2.5+x(6).*xdata.^3)-72.14;end xdata = [0;0.3036;0.6133;0.9418;1.248;1.561;2.232;2
MATLAB Lsqcurvefit拟合问题
function F=cocl2(x,xdata)
F = x(1).*(log(xdata)-1.023.*xdata.^0.5./(1+xdata.^0.5)+x(2).*xdata+x(3).*xdata.^1.5+x(4).*xdata.^2+x(5).*xdata.^2.5+x(6).*xdata.^3)-72.14;
end
xdata = [0;0.3036;0.6133;0.9418;1.248;1.561;2.232;2.920;3.176;4.128;4.901;5.954;6.778];
ydata = [72.14;72.73;73.19;73.92;74.52;75.21;76.61;78.71;79.35;81.20;83.89;85.45;87.99];
x0 = [1,2,1,1,1,1];
x = lsqcurvefit(cocl2,x0,xdata,ydata);
y1 = cocl2(x,xdata)
plot(xdata,ydata,'*',xdata,y1,'r-')
出现错误:
Error using cocl2 (line 2)
Not enough input arguments.
Error in test1 (line 6)
x = lsqcurvefit(cocl2,x0,xdata,ydata);
改好了 
function F=cocl2(x,xdata)
F = x(1).*(log(xdata)-1.023.*xdata.^0.5./(1+xdata.^0.5)+x(2).*xdata+x(3).*xdata.^1.5+x(4).*xdata.^2+x(5).*xdata.^2.5+x(6).*xdata.^3)-72.14;
end 


xdata = [0.0001;0.3036;0.6133;0.9418;1.248;1.561;2.232;2.920;3.176;4.128;4.901;5.954;6.778]; 
ydata = [72.14;72.73;73.19;73.92;74.52;75.21;76.61;78.71;79.35;81.20;83.89;85.45;87.99];
x0 = [1;2;1;1;1;1];
x = lsqcurvefit(@cocl2,x0,xdata,ydata);
y1 = cocl2(x,xdata)
plot(xdata,ydata,'*',xdata,y1,'r-')


运行正确 但是拟合的不好



MATLAB Lsqcurvefit拟合问题 function F=cocl2(x,xdata)F = x(1).*(log(xdata)-1.023.*xdata.^0.5./(1+xdata.^0.5)+x(2).*xdata+x(3).*xdata.^1.5+x(4).*xdata.^2+x(5).*xdata.^2.5+x(6).*xdata.^3)-72.14;end xdata = [0;0.3036;0.6133;0.9418;1.248;1.561;2.232;2

把F表达式中最后的(-72.14)改成(+72.14).

数据拟合最关键的是要选择适当的拟合函数形式,拟合函数选择不当不可能得到满意结果的.