曲线拟合实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 表中数据的散点图

相关文档
最新文档