原文地址:matlab线性拟合
作者:Txping7
-
11.1 曲线拟合
-
曲线拟合涉及回答两个基本问题: 最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义 最佳拟合,并存在无穷数目的曲线。所以,从这里开始,我们走向何方?正如它证实的那样,当 最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。数学上,称为多项式的最小二乘曲线拟合。如果这种描述使你混淆,再研究图11.1。虚线和标志的数据点之间的垂直距离是在该点的误差。对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。这条虚线是使误差平方和尽可能小的曲线,即是 最佳拟合。最小二乘这个术语仅仅是使误差平方和最小的省略说法。
-
在MATLAB中,函数 polyfit求解最小二乘曲线拟合问题。为了阐述这个函数的用法,让我们以上面图11.1中的数据开始。
-
» x=[0.1.2.3.4.5.6.7.8.91];
-
» y=[-.4471.9783.286.167.087.347.669.569.489.3011.2];
-
为了用 polyfit,我们必须给函数赋予上面的数据和我们希望最佳拟合数据的多项式的阶次或度。如果我们选择 n=1作为阶次,得到最简单的线性近似。通常称为线性回归。相反,如果我们选择 n=2作为阶次,得到一个2阶多项式。现在,我们选择一个2阶多项式。
-
» n=2;%polynomial order
-
» p=polyfit(x, y, n)
-
p =
-
-9.810820.1293-0.0317
-
polyfit的输出是一个多项式系数的行向量。其解是y = -9.8108x 2+20.1293x-0.0317。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。
-
» xi=linspace(0, 1, 100);%x-axis data for plotting
-
» z=polyval(p, xi);