Matlab最小二乘法拟合笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最小二乘法拟合

在科学实验的统计方法研究中,往往要从一组实验数据中寻找出自变量x 和因变量y之间的函数关系y=f(x) 。由于观测数据往往不够准确,因此并

不要求y=f(x)经过所有的点,而只要求在给定点上误差

按照某种标准达到最小,通常采用欧氏范数作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB中实现最小二乘法拟合通常采用polyfit函数进行。

函数polyfit是指用一个多项式函数来对已知数据进行拟合,我们以下列数据为例介绍这个函数的用法:

>> x=0:0.1:1;

>> y=[ -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 ]

为了使用polyfit,首先必须指定我们希望以多少阶多项式对以上数据进行拟合,如果我们指定一阶多项式,结果为线性近似,通常称为线性回归。我们选择二阶多项式进行拟合。

>> P= polyfit (x, y, 2)

P=

-9.8108 20.1293 -0.0317

函数返回的是一个多项式系数的行向量,写成多项式形式为:

为了比较拟合结果,我们绘制两者的图形:

>> xi=linspace (0, 1, 100); %绘图的X-轴数据。

>> Z=polyval (p, xi); %得到多项式在数据点处的值。

当然,我们也可以选择更高幂次的多项式进行拟合,如10阶:

>> p=polyfit (x, y, 10);

>> xi=linspace (0, 1,100);

>> z=ployval (p, xi);

读者可以上机绘图进行比较,曲线在数据点附近更加接近数据点的测量值了,但从整体上来说,曲线波动比较大,并不一定适合实际使用的需要,所以在进行高阶曲线拟合时,“越高越好”的观点不一定对的。

相关文档
最新文档