好文档 - 专业文书写作范文服务资料分享网站

数学建模 最小二乘法拟合多项式论文

天下 分享 时间: 加入收藏 我要投稿 点赞

最小二乘法拟合多项式论文

学号:201117912 姓名:刘苗苗 专业:计算机科学与技术

一 最小二乘法的基本原理

从整体上考虑近似函数

同所给数据点

(i=0,1,…,m)误差

(i=0,1,…,m)的大小,常用的方法有以下三种:一是误差 (i=0,1,…,m)绝对值的最大值

的∞—范数;二是误差绝对值的和

,即误差 向量

,即误差向量r的1—范数;三是误差平方

和的算术平方根,即误差向量r的2—范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2—范数的平方,因此在曲线拟合中常采用误差平方和

来 度量误差 (i=0,1,…,m)的整体大小。

(i=0,1,…,m),在取定的函数类

数据拟合的具体作法是:对给定数据 中,求

,使误差

的曲线

=

(i=0,1,…,m)的平方和最小,即

(i=0,1,…,m)的距离平方和为最小

从几何意义上讲,就是寻求与给定点

(图6-1)。函数

为拟合 函数或最小二乘解,求拟合函数的方法称为曲线拟合的最小二乘法。

在曲线拟合中,函数类可有不同的选取方法.

6—1

二 多项式拟合 假设给定数据点的函数类,现求一

(i=0,1,…,m),为所有次数不超过

,使得

的多项式构成

(1)

当拟合函数为多项式时,称为多项式拟合,满足式(1)的多项式。特别地,当n=1时,称为线性拟合或直线拟合。 显然

为的多元函数,因此上述问题即为求元函数求极值的必要条件,得

称为最小二乘拟合

的极值 问题。由多

(2)

(3)是关于

的线性方程组,用矩阵表示为

(3)

(4)

式(3)或式(4)称为正规方程组或法方程组。

可以证明,方程组(4)的系数矩阵是一个对称正定矩阵,故存在唯一解。从式(4)中解出

(k=0,1,…,n),从而可得多项式

 (5)

可以证明,式(5)中的

满足式(1),即

为所求的拟合多项式。我们把的平方误差,记作

由式(2)可得

(6)

多项式拟合的一般方法可归纳为以下几步:

(1) 由已知数据画出函数粗略的图形——散点图,确定拟合多项式的次数n; (2) 列表计算

(3) 写出正规方程组,求出

和;

;

称为最小二乘拟合多项式

(4) 写出拟合多项式。 在实际应用中,或;当时所得的拟合多项式就是拉格朗日或牛顿插值多项式。

第三 例:已知f(-2)=8.3,f(-1)=4.7,f(1)=4.7,f(3)=14.3,求最小二乘拟合多项式。 x -2 -1 1 3 y 8.3 4.7 4.7 14.3 (1)当取n=1,设拟合函数为

y?a0?a1x列表如下 x 0 1 2 3 正规方程组为 xi yi

yi xiyi -2 -1 1 3 1 8.3 4.7 4.7 14.3 32 4 1 1 9 15 -16.6 -4.7 4.7 42.9 26.3 ?41??a0??32???????? ?115??a1??26.3?解方程组得

a1?1.2407 a0?7.6898 (见程序一)!

故得x与y的拟合直线为

y?1.2407x?7.6898

(2)当n=2时。 设拟合曲线方程为

列表如下 I 0 1 2 3 正规方程组 xi yi

xiyi 4 1 1 9 15 -8 -1 1 27 17 16 1 1 81 99 33.2 4.7 4.7 128.7 171.3 -2 -1 1 3 1 8.3 4.7 4.7 14.3 32 -16.6 -4.7 4.7 42.9 26.3 ?4115??a0????11517??a1?a?151799???2?解得:a2

故拟合二次多项式为

??32?????26.3?????171.3????

?1.2 a1?0 a0?3.5 (见程序二)!

2y?3.5?1.2x图行为:

(3)当n=3时 设三次拟合多项式为:

y?a0?a1x?a2x?a3x解得

a0?3.5

故拟合三次多项式为

23

a1?0 a2?1.2 a3?0 (见程序三)!

y?3.5?1.2x2

此函数与当n=2时相同。

程序一

x=[-2 -1 1 3];

y=[8.3 4.7 4.7 14.3]; p=polyfit(x,y,1) % r=poly2sym(p)

x1=linspace(-2,3,300) y1=polyval(p,x1) % y1=1.2*x1.^2+3.5; plot(x1,y1) 程序二

x=[-2 -1 1 3];

y=[8.3 4.7 4.7 14.3]; p=polyfit(x,y,2) % r=poly2sym(p)

x1=linspace(-2,3,300) y1=polyval(p,x1) % y1=1.2*x1.^2+3.5; plot(x1,y1) 程序三

x=[-2 -1 1 3];

y=[8.3 4.7 4.7 14.3]; p=polyfit(x,y,3) % r=poly2sym(p)

x1=linspace(-2,3,300) y1=polyval(p,x1) % y1=1.2*x1.^2+3.5; plot(x1,y1)

Matlab程序:

18iam5llya7wp9920svp
领取福利

微信扫码领取福利

微信扫码分享