来源:https://blog.csdn.net/zhaluo0051/article/details/77949170
:https://blog.csdn.net/g28_gwf/article/details/84450935
Matlab做线性最小二乘拟合
函数命令为:a=polyfit(x,y,m) % x,y为对应的自变量,m为需要拟合的最高次幂
y=polyval(a,x); %根据拟合的函数得出x对应的因变量的值
函数表达形式为:f(x)=a1*x^m+...+am*x+a_m+1。
当前有数据集
x = 0 : 1 : 21;
y = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92 76.5 123.2 131.7 150.7 179.3 204 226.5 251.4 281.4];
若想找出一条多项式曲线去描述此数据集,则可使用polyfit()函数与polyval()。
使用polyfit()函数获得通过当前数据集的拟合结果,最后一个参数为多项式的最高次数。
之后用polyval()函数获得当前数据集对应的输出结果。
a = polyfit(x, y, 2);
z = polyval(a, x);
作图查看拟合结果:
scatter(x, y);
hold on;
plot(x, z);
得到图像: