曲线拟合实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精品文档
数值分析
课程设计报告
学生姓名
学生学号
所在班级
指导教师
一、课程设计名称
函数逼近与曲线拟合
二、课程设计目的及要求
实验目的:
⑴学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。 ⑵学会基本的矩阵运算,注意点乘和叉乘的区别。 实验要求:
⑴编写程序用最小二乘法求拟合数据的多项式,并求平方误差,做出离散函
数和拟合函数的图形;
⑵用MATLAB 的内部函数polyfit 求解上面最小二乘法曲线拟合多项式的系
数及平方误差,并用MATLAB 的内部函数plot 作出其图形,并与(1)结果进行比较。
三、课程设计中的算法描述
用最小二乘法多项式曲线拟合,根据给定的数据点,并不要求这条曲线精确的经过这些点,而是拟合曲线无限逼近离散点所形成的数据曲线。
思路分析:从整体上考虑近似函数)(x p 同所给数据点
)(i i y x ,误差i i i y x p r -=)(的大小,常用的方法有三种:一是误差i i i y x p r -=)(绝对值的最大
值i m
i
r ≤≤0max ,即误差向量的无穷范数;二是误差绝对值的和∑=m
i i r 0
,即误差向量的1
范数;三是误差平方和∑=m
i i r 0
2的算术平方根,即类似于误差向量的2范数。前两
种方法简单、自然,但不便于微分运算,后一种方法相当于考虑2范数的平方,此次采用第三种误差分析方案。 算法的具体推导过程: 1.设拟合多项式为:
2.给点到这条曲线的距离之和,即偏差平方和:
3.为了求得到符合条件的a 的值,对等式右边求偏导数,因而我们得到了:
4.将等式左边进行一次简化,然后应该可以得到下面的等式
5.把这些等式表示成矩阵的形式,就可以得到下面的矩阵:
⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∑∑∑∑∑∑∑∑∑∑∑=====+==+====n i i n i n i i k n i k i n
i k i
n
i k i n i k i n
i i
n i i
n
i k i
n
i i
y y y a a x x
x x x
x
x x 11i 1
10121
11
1112111
a n M M
Λ
M O M
M ΛΛ 6. 将这个范德蒙得矩阵化简后得到
⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡n k k n n k k y y y a a a x x x x x x M M Λ
M
O
M M ΛΛ211022111
11
7.因为Y A X =*,那么X Y A /=,计算得到系数矩阵,同时就得到了拟合曲线。
四、课程设计内容
⑴实验环境:MATLAB2010
⑵实验内容:给定的数据点 0 0.5 0.6 0.7 0.8 0.9 1.0
1
1.75
1.96
2.19
2.44
2.71
3.00
1) 用最小二乘法求拟合数据的多项式; 2) 用MATLAB 内部函数polyfit 函数进行拟合。 ⑶实验步骤
1)首先根据表格中给定的数据,用MATLAB 软件画出数据的散点图(图1)。 2)观察散点图的变化趋势,近似于二次函数。则用二次多项式进行拟合,取一组基函数
,并令
,其中是待定系数
。
3)用MATLAB 程序作线性最小二乘法的多项式拟合,求待定系数。 算法实现代码如下:
x=[0 0.5 0.6 0.7 0.8 0.9 1.0]; y=[1 1.75 1.96 2.19 2.44 2.71 3.00]; R=[(x.^2)' x' ones(7,1)]; A=R\y'
4) 用MATLAB 程序计算平均误差。 算法实现代码如下:
y1=[1 1.75 1.96 2.19 2.44 2.71 3.00]; x=[0 0.5 0.6 0.7 0.8 0.9 1.0]; y=x.^2+x+1; z=(y-y1).^2; sum(z)
5) 作出拟合曲线和数据图形(图2)。
6)用MATLAB的内部函数polyfit求解上面最小二乘法曲线拟合多项式的系数及平方误差。
算法实现代码如下:
x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
A=polyfit(x,y,2);%二次多形式拟合%
z=polyval(A,x);
A
d=sum((z-y).^2)
7)绘制使用polyfit函数实现的拟合图形。(图3)
五、程序流程图
图5-1 用最小二乘法求多项式拟合曲线流程图
输入初始数据点
调用polyfit函数,确定多形式的系数
调用polyval函数,进行多项式求值
调用plot函数进行绘图
图5-2 用polyfit函数求多项式拟合曲线流程图六、实验结果
图6-1 表中数据的散点图