Lecture5.ppt_第1页
Lecture5.ppt_第2页
Lecture5.ppt_第3页
Lecture5.ppt_第4页
Lecture5.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验十二 实验数据的插值实验十三 实验数据的拟合,实验十二 实验数据的插值实验十三 实验数据的拟合,一、实验目的,学会MATLAB软件中利用给定数据进行插值运算的方法。,二、相关知识,在生产和科学实验中,自变量 与因变量 间的函数关系 有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂需要较大的计算量而只能计算函数在若干点的函数值或导数值,当要求知道其它点的函数值时,需要估计函数值在该点的值。 为了完成这样的任务,需要构造一个比较简单的函数 ,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于或者接近已知的值,寻找这样的函数 有很多方法。根据测量数据的类

2、型有以下两类处理观测数据的方法。,二、相关知识,(1)测量数据的数据量较小并且数据值是准确的,或者基本没有误差,这时我们一般用插值的方法来解决问题。 (2)测量数据的数据量较大或者测量值与真实值有误差,这时一般用曲线拟合的方法来解决问题。为了完成这样的任务,需要构造一个比较简单的函数 ,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于或者接近已知的值,寻找这样的函数 有很多方法。根据测量数据的类型有以下两类处理观测数据的方法。,(1)测量数据的数据量较小并且数据值是准确的,或者基本没有误差,这时我们一般用插值的方法来解决问题。 (2)测量数据的数据量较大或者测量值与真实值有误差,这时

3、一般用曲线拟合的方法来解决问题。 在MATLAB中,无论是插值还是拟合,都有相应的命令来处理。本实验讨论插值。,一维插值 已知离散点上的数据集 ,即已知在点集 上的函数值 ,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。完成这一过程可以有多种方法,我们现在 在MATLAB中,无论是插值还是拟合,都有相应的命令来处理。本实验讨论插值。,一维插值 已知离散点上的数据集 ,即已知在点集 上的函数值 ,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。完成这一过程可以有多种方法,我们现在利用MATLAB提供的函

4、数interp1,这个函数的调用格式为: yi=interp1(X,Y,xi,method) 该命令用指定的算法找出一个一元函数 ,然后以 给出 处的值。,xi 可以是一个标量,也可以是一个向量,是向量时,必须单调,method可以下列方法之一: nearest:最近邻点插值,直接完成计算; spline:三次样条函数插值; linear:线性插值(缺省方式),直接完成计算 利用MATLAB提供的函数interp1,这个函数的调用格式为: yi=interp1(X,Y,xi,method) 该命令用指定的算法找出一个一元函数 ,然后以 给出 处的值。,xi 可以是一个标量,也可以是一个向量,是

5、向量时,必须单调,method可以下列方法之一: nearest:最近邻点插值,直接完成计算; spline:三次样条函数插值; linear:线性插值(缺省方式),直接完成计算 cubic:三次函数插值; 对于minxi,maxxi外的值,MATLAB使用外推的方法计算数值。,例1:已知某产品从1900年到2010年每隔10年的产量为:75.995, 91.972, 105.711,123.203, 131.699, 150.697, 179.323, 203.212, 226.505, 249.633, 256.344, 267.893,计算出1995年的产量,用三次样条插值的方法,画出每

6、隔一年的插值曲线图形,同时将原始的数据画在同一图上。 cubic:三次函数插值; 对于minxi,maxxi外的值,MATLAB使用外推的方法计算数值。,例1:已知某产品从1900年到2010年每隔10年的产量为:75.995, 91.972, 105.711,123.203, 131.699, 150.697, 179.323, 203.212, 226.505, 249.633, 256.344, 267.893,计算出1995年的产量,用三次样条插值的方法,画出每隔一年的插值曲线图形,同时将原始的数据画在同一图上。 解:程序如下 year=1900:10:2010; product=75

7、.995,91.972,105.711,123.203, 131.699,150.697,179.323,203.212,226.505,249.633,256.344,267.893 p1995=interp1(year,product,1995,spline),x=1900:2010; y=interp1(year,product,x,spline); plot(year,product,o,x,y); 计算结果为:p1995=253.2278 如果用线性插值,则程序的后四行改为: 解:程序如下 year=1900:10:2010; product=75.995,91.972,105.71

8、1,123.203, 131.699,150.697,179.323,203.212,226.505,249.633,256.344,267.893 p1995=interp1(year,product,1995,spline),x=1900:2010; y=interp1(year,product,x,spline); plot(year,product,o,x,y); 计算结果为:p1995=253.2278 如果用线性插值,则程序的后四行改为: p1995=interp1(year,product,1995,linear) x=1900:2010; y=interp1(year,prod

9、uct,x,linear); plot(year,product,o,x,y); 计算结果为:p1995=252.9885,这两种计算方法得到的数据有微小的差异,这种差异我们从两个图形上也能够看到,主要表现在节点(那些绘制成圆点的点)的附近。前者是光滑的,后者有角点出现。 p1995=interp1(year,product,1995,linear) x=1900:2010; y=interp1(year,product,x,linear); plot(year,product,o,x,y); 计算结果为:p1995=252.9885,这两种计算方法得到的数据有微小的差异,这种差异我们从两个图

10、形上也能够看到,主要表现在节点(那些绘制成圆点的点)的附近。前者是光滑的,后者有角点出现。,二维插值 已知离散点上的数据集 即已知在点集 上的函数值 ,构造一个解析函数 (其图形为一曲面)通过这些点,并能够求出这些已知点以外的点的函数值,这一过程称为二维插值。 MATLAB命令:Zi=interp2(X,Y,Z,Xi,Yi,method) 该命令用指定的算法找出一个二元函数 ,然后以 给出 处的值。返回数据矩阵Zi,Xi,Yi是向量,且必须单调,Zi和meshgrid(Xi,Yi)是同类型的。,method可以下列方法之一: nearest:最近邻点插值,直接完成计算; spline:三次样条

11、函数插值; linear:线性插值(缺省方式),直接完成计算 cubic:三次函数插值; MATLAB命令:Zi=interp2(X,Y,Z,Xi,Yi,method) 该命令用指定的算法找出一个二元函数 ,然后以 给出 处的值。返回数据矩阵Zi,Xi,Yi是向量,且必须单调,Zi和meshgrid(Xi,Yi)是同类型的。,method可以下列方法之一: nearest:最近邻点插值,直接完成计算; spline:三次样条函数插值; linear:线性插值(缺省方式),直接完成计算 cubic:三次函数插值;,例2:已知1950年到1990年间每隔10年,服务年限从10年到30年每隔10年的

12、劳动报酬表如下: 某企业工作人员的月平均工资(元) 试计算1975年时,15年工龄的工作人员平均工资。,解:程序如下: years=1950:10:1990; service=10:10:30; wage=150.697 169.592 187.652 179.323 195.072 250.287 试计算1975年时,15年工龄的工作人员平均工资。,解:程序如下: years=1950:10:1990; service=10:10:30; wage=150.697 169.592 187.652 179.323 195.072 250.287 203.212 239.092 322.767

13、226.505 273.706 426.730 249.633 370.281 598.243 w=interp2(service,years,wage,15,1975) 计算结果为:235.6288,例3:设有数据x=1,2,3,4,5,6,y=1,2,3,4,在由x,y构成的网格上,数据为: 12,10,11,11,13,15 16,22,28,35,27,20 18,21,26,32,28,25 203.212 239.092 322.767 226.505 273.706 426.730 249.633 370.281 598.243 w=interp2(service,years,w

14、age,15,1975) 计算结果为:235.6288,例3:设有数据x=1,2,3,4,5,6,y=1,2,3,4,在由x,y构成的网格上,数据为: 12,10,11,11,13,15 16,22,28,35,27,20 18,21,26,32,28,25 20,25,30,33,32,20 画出原始网格图和将网格细化为间隔为0.1后的插值网格图。 解:程序为: x=1:6; y=1:4;,t=12,10,11,11,13,15 16,22,28,35,27,20 18,21,26,32,28,25; 20,25,30,33,32,20 subplot(1,2,1) mesh(x,y,t)

15、20,25,30,33,32,20 画出原始网格图和将网格细化为间隔为0.1后的插值网格图。 解:程序为: x=1:6; y=1:4;,t=12,10,11,11,13,15 16,22,28,35,27,20 18,21,26,32,28,25; 20,25,30,33,32,20 subplot(1,2,1) mesh(x,y,t) x1=1:0.1:6; y1=1:0.1:4; x2,y2=meshgrid(x1,y1); t1=interp2(x,y,t,x2,y2,cubic); subplot(1,2,2) mesh(x1,y1,t1);,结果如图。左图是给定的网格处的数据,右图是

16、插值后的数据。,三、实验内容,1已知x=0.1,0.8,1.3,1.9,2.5,3.1,y=1.2,1.6,2.7,2.0,1.3,0.5,利用其中的部分数据,分别用线性插值和3次插值,求x=2.0处的值。 2已知二元函数 在点集 上的值为 ,,其中,左上角位置表示 ,右下角位置表示 画出原始网格图和将网格细化为间隔为0.1后的插值网格图。 *3学习函数interp3(X,Y,Z,V,X1,Y1,Z1,method) , 对MATLAB提供的flow数据实现三维插值。 4完成实验报告。,实验十三 实验数据的拟合,一、实验目的,学会MATLAB软件中利用给定数据进行拟合运算的方法。,二、相关知识

17、,在上一个实验中,我们已经讨论了在生产和科学实验中,需要利用插值和拟合的场合,本实验讨论拟合。在MATLAB中,拟合也有相应的函数来完成。我们首先来讨论拟合的数学定义。 已知离散点上的数据集 ,即已知在点集 上的函数值 ,构造一个解析函数 (其图形为一曲线),使 在原离散点 上的值尽可能接近给定的 值,这一构造函数 的过程称为曲线拟合。最常用的曲线拟合方法是最小二乘法,该方法是寻找函数 使 得 最小。,二、相关知识,在MATLAB中,有下面几个命令与拟合相关,它们的含义和调用方法如下: p=polyfit(x,y,n) c=lsqcurvefit(fun,c0,x,y) 说明:polyfit求

18、出已知数据x,y的n阶拟合多项式 构造一个解析函数 (其图形为一曲线),使 在原离散点 上的值尽可能接近给定的 值,这一构造函数 的过程称为曲线拟合。最常用的曲线拟合方法是最小二乘法,该方法是寻找函数 使 得 最小。,在MATLAB中,有下面几个命令与拟合相关,它们的含义和调用方法如下: p=polyfit(x,y,n) c=lsqcurvefit(fun,c0,x,y) 说明:polyfit求出已知数据x,y的n阶拟合多项式 的系数p,x,y都是向量,x的分量必须单调。 lsqcurvefit用作各种类型曲线的拟合,用最小二乘法寻找符合经验公式的最优曲线。可用非线性函数的数据拟合。 例1:求

19、如下给定数据的拟合曲线,x=0.5,1.0,1.5,2.0,2.5,3.0,y=1.75,2.45,3.81,4.80,7.00,8.60。,解:MATLAB程序如下: x=0.5,1.0,1.5,2.0,2.5,3.0; y=1.75,2.45,3.81,4.80,7.00,8.60; p=polyfit(x,y,2) x1=0.5:0.05:3.0; 的系数p,x,y都是向量,x的分量必须单调。 lsqcurvefit用作各种类型曲线的拟合,用最小二乘法寻找符合经验公式的最优曲线。可用非线性函数的数据拟合。 例1:求如下给定数据的拟合曲线,x=0.5,1.0,1.5,2.0,2.5,3.0

20、,y=1.75,2.45,3.81,4.80,7.00,8.60。,解:MATLAB程序如下: x=0.5,1.0,1.5,2.0,2.5,3.0; y=1.75,2.45,3.81,4.80,7.00,8.60; p=polyfit(x,y,2) x1=0.5:0.05:3.0; y1=polyval(p,x1); plot(x,y,*r,x1,y1,-b) 计算结果为: p =0.5614 0.8287 1.1560 此结果表示拟合函数为:,用此函数拟合数据的效果如图所示。,例2:给定下列数据: 考虑这些数据的非线性拟合,用函数 ,先将参数 , 合写为 ,编写如下程序: fun=inline(c(1)*exp(c(2)*x),c,x); x=0.1,0.2,0.15,0,-0.2,0.3; y=0.95,0.84,0.86,1.06,1.50,0.72; c=lsqcurvefit(fun,0,0,x,y) norm(feval(fun,c,x)-y)2,其中0,0是初始值,最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论