matlab数值分析第三章插值ppt课件_第1页
matlab数值分析第三章插值ppt课件_第2页
matlab数值分析第三章插值ppt课件_第3页
matlab数值分析第三章插值ppt课件_第4页
matlab数值分析第三章插值ppt课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、 第三章 插值 插值:插值就是定义一个在特定点取给定值的函数的过程。本章的重点是引见两个严密相关的插值函数:分段三次样条函数和保形分段三次插值函数称为“pchip 3.1 插值多项式插值多项式 3.2 分段线性插值分段线性插值 3.3 分段三次埃米特插值分段三次埃米特插值 3.4 保形分段三次插值保形分段三次插值 3.5 三次样条三次样条 3.6 pchiptx,splinetx 3.7interpgui3.1插值多项式插值多项式 平面上的恣意两点平面上的恣意两点x1x1,y1y1和和x2x2,y2y2, ,只需只需x1x2,x1x2,就为以确定一个关于就为以确定一个关于x x的一次多项式的一

2、次多项式, ,其图形经过这两点。对于其图形经过这两点。对于这个多项式,有多种不同的公式表达,这个多项式,有多种不同的公式表达,但它们都对应同一个直线图形。但它们都对应同一个直线图形。两个点时,假定给定区间两个点时,假定给定区间xk,xk+1xk,xk+1及端点函数值及端点函数值yk=fyk=fxkxk,yk+1=fyk+1=fxk+1xk+1,要求线性插值多项式,要求线性插值多项式L1L1x x,使它满足,使它满足 L1L1xkxk=yk=yk,L1L1xk+1xk+1=yk+1=yk+1 y=L1 y=L1x x的几何意义就是经过两点的几何意义就是经过两点(xk(xk,yk)yk)与与xk+

3、1 xk+1 ,yk+1) yk+1) 的直线,的直线, L1L1x x的表达式可由几何的表达式可由几何意义直接给出意义直接给出 11111111( )() ()( )()kkkkkkkkkkkkkkyyL xyx xxxxxxxL xyyxxxx点斜式两点式 由两点式可以看出,由两点式可以看出,L1x是由两个线性函数是由两个线性函数 的线性组合得到,其系数分别为的线性组合得到,其系数分别为yk和和yk+1,即,即 显然,显然, lkx及及lk+1x也是线性插值多项式,也是线性插值多项式,在节点在节点xk及及xk+1上满足条件上满足条件 我们称函数我们称函数lkx与与lk+1x为线性插值基函数

4、。为线性插值基函数。1111( ),( )kkkkkkkkxxxxl xlxxxxx111( )( )( )k kkkL xy lxylx1111( ) 1,() 0;( ) 0,() 1kkkkkkkkl xl xlxlx 这种用插值基函数表示的方法推行到普通情形,以这种用插值基函数表示的方法推行到普通情形,以下讨论如何构造经过下讨论如何构造经过n+1个节点个节点x0 x1xn的的n次次插值多项式插值多项式Lnx,假定它满足条件,假定它满足条件 假设假设n次多项式次多项式ljxj=0,1,n在在n+1个节点个节点 x0 x1xn 上满足条件上满足条件 就称这就称这n+1个个n次多项式次多项式

5、l0(x), l1(x), ln(x)为节为节点点x0,x1,xn上的上的n次插值基函数。次插值基函数。 用类似的推导方法,可得到用类似的推导方法,可得到n次插值基函数为次插值基函数为011011().()().()( )().()().()(0,1,.,)kknkkkkkkknxxxxxxxxlxxxxxxxxxkn( ),(0,1,., )(1)njjL xyjn1,;( )( ,0,1,., )(2)0,.jkkjl xj knkj 显然它满足条件显然它满足条件1式。于是满足条件式。于是满足条件1的插的插值多项式值多项式Lnx可表示为可表示为 由由lkx的定义知的定义知 形如形如3式的插

6、值多项式式的插值多项式Lnx称为拉格朗日插称为拉格朗日插值多项式。值多项式。 那么对于平面上有着不同那么对于平面上有着不同xk值的值的n+1个点个点,xk,yk, k=0,1, ,n,存在独一一个关于存在独一一个关于x的次数小的次数小于于n+1的多项式,使其图形经过这些点。的多项式,使其图形经过这些点。 很容易看出,数据点的数目很容易看出,数据点的数目n+1也是多项式系也是多项式系数的个数。虽然,一些首项的系数能够是零,但多项数的个数。虽然,一些首项的系数能够是零,但多项式的次数实践上也小于式的次数实践上也小于n。同样,这个多项式,有多。同样,这个多项式,有多种不同的公式表达,但它们都对应同一

7、个直线图形。种不同的公式表达,但它们都对应同一个直线图形。0( )( )(3)nnk kLxy lx0()()(0,1,., )nnjk kjjL xy l xyjn 这样的多项式称为插值多项式,它可以准确的重新计算出初始给定的数据: 表示插值多项式的最紧凑的方式是拉格朗日方式(),1,.,kkP xy kn( )()jkkj kkjxxP xyxx 例如,思索下面一组数据例如,思索下面一组数据x=0:3;x=0:3;y=-5 -6 -1 16;y=-5 -6 -1 16;输入命令输入命令disp(x;y)disp(x;y)其输出为其输出为 0 1 2 3 0 1 2 3-5 -6 -1 16

8、-5 -6 -1 16这些数据的拉格朗日方式的多项式插值为这些数据的拉格朗日方式的多项式插值为(1)(2)(3)(2)(3)(1)(3)(1)(2)( )( 5)( 6)( 1)(16)( 6)(2)( 2)(6)xxxx xxx xxx xxP x 一个多项式通常不用拉格朗日方式表示,它更常见的写成类似 的方式。其中简单的x的次方项称为单项式,而多项式的这种方式称为运用幂方式的多项式。 插值多项式运用幂方式表示为325xx12121( ).nnnnP xcxc xc x c 其中的系数,原那么上可以经过求解下面的线性其中的系数,原那么上可以经过求解下面的线性代数方程组得到。代数方程组得到。

9、这个线性方程组的系数矩阵记为这个线性方程组的系数矩阵记为V,也被称为范德,也被称为范德尔蒙尔蒙Vandermonde矩阵,该矩阵的各个元素矩阵,该矩阵的各个元素为为 上述范德尔蒙矩阵的各列,有时也按相反的顺序上述范德尔蒙矩阵的各列,有时也按相反的顺序陈列,但在陈列,但在MATLAB中,多项式系数向量,通常中,多项式系数向量,通常按从高次幂到低次幂陈列。按从高次幂到低次幂陈列。1211111122222212.1.1.1.1nnnnnnnnnnnxxxcycyxxxcyxxx ,njk jkvx MATLAB中的函数中的函数vander可生成范德尔蒙矩阵,可生成范德尔蒙矩阵,例如对于前面的那组数

10、据,例如对于前面的那组数据, V=vander(x) 生成生成 V = 0 0 0 1 1 1 1 1 8 4 2 1 27 9 3 1 然后,输入命令然后,输入命令 c=Vy 计算出插值系数计算出插值系数 c = 1.0000 0.0000 -2.0000 -5.0000能实现各种插值算法的能实现各种插值算法的MATLAB函数函数它们都采用下面的调用格式它们都采用下面的调用格式 v=interpx,y,u前两个参数,前两个参数,x和和y,是长度一样的向量,它们定义了插值,是长度一样的向量,它们定义了插值点。第三个参数点。第三个参数u,为要计算函数值的范围上的点组成的,为要计算函数值的范围上的

11、点组成的向量。输出向量向量。输出向量v和和u长度相等,长度相等,其分量其分量vk=interpx,y,uk。第一个这样的插值函数是第一个这样的插值函数是polyinterp,它基于拉格朗日方式。,它基于拉格朗日方式。 为了解释为了解释polyinterp函数的功能,先构造一个间隔很函数的功能,先构造一个间隔很密的求值点向量。密的求值点向量。 u = -.25:.01:3.25; 然后输入命令然后输入命令 v = polyinterp(x,y,u); plot(x,y,o,u,v,-) 可生成图可生成图3-1。 函数函数polyinterppolyinterp也可以处置符号变量,例如创建符号也可

12、以处置符号变量,例如创建符号变量变量 symx=sym(x)symx=sym(x) 命令:命令: P=polyinterp(x,y,symx)P=polyinterp(x,y,symx) pretty(P) pretty(P) 其输出结果为其输出结果为 -5 (-1/3 x + 1)(-1/2 x + 1)(-x + 1) - 6 (-5 (-1/3 x + 1)(-1/2 x + 1)(-x + 1) - 6 (-1/2 x + 3/2)(-x + 2)x1/2 x + 3/2)(-x + 2)x -1/2 (-x + 3)(x - 1)x + 16/3 (x - 2)(1/2 x -1/2

13、 (-x + 3)(x - 1)x + 16/3 (x - 2)(1/2 x - 1/2)x- 1/2)x 这个表达式是插值多项式的拉格朗日方式。这个表达式是插值多项式的拉格朗日方式。 命令:命令: P=simplify(P)P=simplify(P) 将其进展简化,从而得到将其进展简化,从而得到P P的幂方式的幂方式 P =P = x3-2 x3-2* *x-5x-5计算机显示插值多项式的符号方式另外一个例子,运用的是本章另一种方法所用的例子另外一个例子,运用的是本章另一种方法所用的例子x = 1:6;x = 1:6;y = 16 18 21 17 15 12;y = 16 18 21 17

14、 15 12;disp(x; y)disp(x; y)u = .75:.05:6.25;u = .75:.05:6.25;v = polyinterp(x,y,u);v = polyinterp(x,y,u);plot(x,y,o,u,v,-);plot(x,y,o,u,v,-);其运转后的结果为其运转后的结果为 1 2 3 4 5 61 2 3 4 5 6 16 18 21 17 15 12 16 18 21 17 15 12同时输出同时输出3-23-2。3.2 分段线性插值分段线性插值 经过两步操作可以绘制出一个简单的图形:经过两步操作可以绘制出一个简单的图形: 第一步用圆圈在坐标系中标出

15、个数据点第一步用圆圈在坐标系中标出个数据点plot(x,y,o); , 第二步用直线段依次衔接这些数据点第二步用直线段依次衔接这些数据点plot(x,y-); 。 下面的语句执行这样的操作,生成图下面的语句执行这样的操作,生成图3-3. x = 1:6; y = 16 18 21 17 15 12; plot(x,y,o,x,y,-); 在生成图在生成图3-33-3所示的图线时,所示的图线时,MATLABMATLAB图像处置函数运用图像处置函数运用了分段线性插值。了分段线性插值。 这个分段线性插值算法是其他更复杂算法的根底,他这个分段线性插值算法是其他更复杂算法的根底,他用了三个量。用了三个量

16、。 首先要确定间隔序号首先要确定间隔序号interval indexinterval indexk k,使得,使得 第二个量是部分变量第二个量是部分变量local variablelocal variables s,其定义,其定义为为 最后一个量是一次均差最后一个量是一次均差first divided differencefirst divided difference 定义了这三个量,那么插值基函数可表示为定义了这三个量,那么插值基函数可表示为 1kkxxxksxx11kkkkkyyxx11( )()kkkkkkkkyyL xyxxxxys显然,这是经过点(xk; yk)和(xk+1; yk

17、+1) 点的线性函数 点点x有时也被称为断点。有上述基函数构成的分段线有时也被称为断点。有上述基函数构成的分段线性插值基函数性插值基函数L(x)是关于是关于x的延续函数,但它的一阶的延续函数,但它的一阶导数导数L(x),那么不延续。在每个,那么不延续。在每个x的子区间上,导数的子区间上,导数值为常数值为常数,但在断点上,它的值发生跳变。,但在断点上,它的值发生跳变。 用用piecelin.m函数可实现分段线性插值,输入的参数函数可实现分段线性插值,输入的参数u,可以是需求计算的点构成的向量。下标可以是需求计算的点构成的向量。下标k实践上是一实践上是一个由序号组成的向量。个由序号组成的向量。3.

18、3分段三次埃米特插值 许多最有效的插值技术都基于分段三次多项式。许多最有效的插值技术都基于分段三次多项式。令令hk为第为第k段子区间的长度:段子区间的长度: 那么一次均差那么一次均差k由下面的公式给出由下面的公式给出 令令dk为插值基函数在点为插值基函数在点xk处的斜率,即:处的斜率,即: 对于分段线性插值基函数,对于分段线性插值基函数,dk=k或或 k+1,但对,但对于更高次的插值多项式不一定成立。于更高次的插值多项式不一定成立。1kkkhxx1kkkkyyh()kkdPx 思索一个定义在区间思索一个定义在区间xkx xk+1的函数,采用的函数,采用部分变量部分变量s= x -xk并令并令h

19、=hk,它可表示为:,它可表示为: 这是一个关于,也即的三次多项式。它满足四个这是一个关于,也即的三次多项式。它满足四个插值条件,其中两个关于函数值,两个关于函数插值条件,其中两个关于函数值,两个关于函数的导数值:的导数值:23323133221223232( )()()kkkkhsshhssP xyyhhsshs shddhh1111(),()(),()kkkkkkkkP xyP xyPxdPxd 那些满足关于导数值插值条件的函数称为埃米那些满足关于导数值插值条件的函数称为埃米特特hermite或亲密或亲密osculatory插值基插值基函数,由于这些函数在插值点上坚持高阶的延函数,由于这些

20、函数在插值点上坚持高阶的延续性在拉丁文中续性在拉丁文中“亲密一词的本意为亲密一词的本意为“亲亲吻。吻。 假设正好给定了一系列数据点上的函数值和一假设正好给定了一系列数据点上的函数值和一阶导数值,那么就可以用埃米特插值拟合这些阶导数值,那么就可以用埃米特插值拟合这些数据。但是假设没有给出这些导数值,那么需数据。但是假设没有给出这些导数值,那么需求用一些方法来限定斜率求用一些方法来限定斜率dk,我们在下一节,我们在下一节中讨论两种能够的方法,即在中讨论两种能够的方法,即在MATLAB中的中的函数函数pchip和和spline。3.4 保形分段三次插值 pchip实践是实践是“分段三次埃米特插值多项

21、式分段三次埃米特插值多项式piecewise cubic Hermite interpolating polynominal的英文首字母缩写。有意思的是,根据的英文首字母缩写。有意思的是,根据这个名字并不能确定它究竟是哪一种分段三次埃米特这个名字并不能确定它究竟是哪一种分段三次埃米特插值多项式,由于样条插值函数实践也是分段三次埃插值多项式,由于样条插值函数实践也是分段三次埃米特插值多项式,只是对斜率的限制条件不同而已。米特插值多项式,只是对斜率的限制条件不同而已。 在这里,我们说的在这里,我们说的pchip实践上是一个最近才引入实践上是一个最近才引入MATLAB、保形的、保形的shape-preserving且看上去不且看上去不错的特定插值函数。它基于一个由错的特定插值函数。它基于一个由Fritsch和和Carlson编写的旧的编写的旧的Fortran程序,在程序,在Kahaner、Moler和和Nash的书【的书【33】中可以找到相关的引见。】中可以找到相关的引见。 对于前面的那个例子数据,图对于前面的那个例子数据,图3-4显示了显示了pchip插值出插值出来的结果。来的结果。 关键思想是如何确定斜率dk,

温馨提示

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

评论

0/150

提交评论