matlab-lsqcurvefit函数

lsqcurvefit函数(least-squares curve-fitting):用于最小二乘法求解非线性曲线拟合问题。即已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x。

1.语法

x = lsqcurvefit(fun,x0,xdata,ydata)

从 x0 开始,求取合适的系数 x,使非线性函数 fun(x,xdata) 对数据 ydata 的拟合最佳(基于最小二乘指标)。ydata 必须与 fun 返回的向量(或矩阵)F 大小相同。

(1)fun:符号函数句柄,如果是以m文件的形式调用的时候,别忘记加@;
(2)x0:最开始预估的值(预拟合的未知参数的估计值)。即方程系数的预估值。
(3)xdata:已有的xdata.
(4)ydata:与xdata对应的ydata.

2.测试

%test
xdata = [0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3];
ydata = [455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5];

fun = @(x,xdata)x(1)*exp(x(2)*xdata);
x0 = [100,-1];
x = lsqcurvefit(fun,x0,xdata,ydata)

times = linspace(xdata(1),xdata(end));
plot(xdata,ydata,'ko',times,fun(x,times),'b-')
legend('Data','Fitted exponential')
title('Data and Fitted Curve')

matlab-lsqcurvefit函数

参考资料:
matlab-非线性拟合函数lsqcurvefit的使用和初值选取:https://www.cnblogs.com/hyb965149985/p/10102335.html

上一篇:ROP-ret2csu


下一篇:做个笔记,关于指针