用多项式模型进行数据拟合实验报告(附代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验题目: 用多项式模型进行数据拟合实验 1 实验目的
本实验使用多项式模型对数据进行拟合,目的在于:
(1)掌握数据拟合的基本原理,学会使用数学的方法来判定数据拟合的情况; (2)掌握最小二乘法的基本原理及计算方法; (3)熟悉使用matlab 进行算法的实现。
2 实验步骤
2.1 算法原理
所谓拟合是指寻找一条平滑的曲线,最不失真地去表现测量数据。反过来说,对测量 的实验数据,要对其进行公式化处理,用计算方法构造函数来近似表达数据的函数关系。由于函数构造方法的不同,有许多的逼近方法,工程中常用最小平方逼近(最小二乘法理论)来实现曲线的拟合。
最小二乘拟合利用已知的数据得出一条直线或曲线,使之在坐标系上与已知数据之间的距离的平方和最小。模型主要有:1.直线型2.多项式型3.分数函数型4.指数函数型5.对数线性型6.高斯函数型等,根据应用情况,选用不同的拟合模型。其中多项式型拟合模型应用比较广泛。
给定一组测量数据()i i y x ,,其中m i ,,3,2,1,0 =,共m+1个数据点,取多项式P (x ),使得min )]([0
20
2=-=∑∑==m
i i i
m i i y x
p r ,则称函数P (x )为拟合函数或最小二乘解,此时,
令
∑==n
k k
k n x a x p 0
)(,使得min ])([02
002=⎪⎪⎭
⎫ ⎝⎛-=-=∑∑∑===m
i n k i k
i k m i i i n y x a y x p I ,其中
n a a a a ,,,,210 为待求的未知数,n 为多项式的最高次幂,由此该问题化为求),,,(210n a a a a I I =的极值问题。
由多元函数求极值的必要条件:0)(200
=-=∂∂∑∑==m i j i n
k i k i k i x y x a a I
,其中n j ,,2,1,0 = 得到:
∑∑∑===+=n k m
i i j i k m
i k
j i
y x a x
)(,其中n j ,,2,1,0 =,这是一个关于n a a a a ,,,,210 的线
性方程组,用矩阵表示如下所示:
⎥⎥⎥
⎥⎥
⎥⎥⎦⎤
⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡
+∑∑∑∑∑∑∑∑∑∑∑=====+==+====m i i n i m i i i m i i n m
i n i
m
i n i
m
i n i m
i n i m
i i
m i i
m
i n i
m
i i
y x y x y a a a x x
x x x
x
x x m 00010020
10
0102000
1
因此,只要给出数据()i i y x ,,数据点个数m ,所要拟合的参数n ,就可求出未知数据阵),,,,(210n a a a a
2.2 实验步骤
(1)根据已知数据(ch3 huaxuefy.m ),绘制出数据的散点图,如图1所示: 注:x 从1开始取值,值与值间隔为1。y 取文件ch3 huaxuefy.m 中的数据。
图1 已知数据散点图
(2)计算矩阵⎥⎥⎥⎥
⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣
⎡
+=∑∑∑∑∑∑∑∑==+==+====m
i n i
m
i n i
m
i n i m
i n i
m
i i
m i i
m
i n i m
i i x x
x x x
x
x x m A 020
100
1020
1
,该矩阵为(n+1)*(n+1)矩阵。
(3)计算矩阵⎥⎥⎥⎥⎥
⎥⎥⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎣⎡=∑∑∑===m i i n i m i i i m i i y x y x y B 00
0 。
(4)写出正规方程,求出n a a a a ,,,,210 。
(5)绘制出数据拟合后的曲线图。分别取n=6,n=8,n=10,n=11,n=12,n=13,n=14,曲线图如下所示:
图2 n=6时拟合曲线
图3 n=8时拟合曲线
图4 n=10时拟合曲线图5 n=11时拟合曲线
图6 n=12时拟合曲线图7 n=13时拟合曲线
3 实验结果分析
通过运用最小二乘法对多项式模型进行数据拟合处理,获得n 次多项式及其系数
n a a a a ,,,,210 。分别取多项式次数n=6,n=8,n=10,n=11,n=12,n=13,n=14绘制拟合曲
线,观察曲线图可知,对于最高次数不同的多项式,拟合结果是不一样的,即对于数据的逼近程度是不相同的。随着n 的增大,曲线拟合效果变好;当n=10时,达到最好拟合效果;n 继续增大,曲线拟合效果又变差。因此,对于相同的数据,并不是多项式的次数n 越高,拟合程度就越好。
4 实验结论
通过实际做实验,得出了如下结论:离散数据点,可以采用多项式模型进行拟合,通过最小二乘法可以求得其最优多项式。此外,还得出一个结论:对于数据拟合,并不是多项式次数越高,拟合就越逼近。对此现象,在数值分析的参考书中找到了原因,这是龙格现象,即对于一个等间距节点的高次插值多项式,不收敛于插值函数。
参考文献
[1] 陈光,任志良,孙海柱. 最小二乘曲线拟合及Matlab 实现[J]. 软件技术, 2005.24(3).