第5章 插值法_第1页
第5章 插值法_第2页
第5章 插值法_第3页
第5章 插值法_第4页
第5章 插值法_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章 插值法v拉格朗日插值拉格朗日插值v差商与牛顿插值差商与牛顿插值v差分与牛顿差分插值差分与牛顿差分插值v埃尔米特插值埃尔米特插值v分段插值分段插值5.1 引言引言在实际应用中可能遇到某些难求的函数。插值法的主要思想是构造易在实际应用中可能遇到某些难求的函数。插值法的主要思想是构造易求的函数,如果易求的函数和难求的函数在某一区间内足够接近,那求的函数,如果易求的函数和难求的函数在某一区间内足够接近,那么在这一区间内就可以用易求的函数代替难求的函数进行计算。么在这一区间内就可以用易求的函数代替难求的函数进行计算。插值的几何意义,就是在仅知道函数曲线上若干点的情况下进行作图,插值的几何意义,就

2、是在仅知道函数曲线上若干点的情况下进行作图,用一条曲线经过这些已知点,尽量使这条曲线接近原来的函数曲线,用一条曲线经过这些已知点,尽量使这条曲线接近原来的函数曲线,并把这条曲线近似地认为是原来的函数曲线。并把这条曲线近似地认为是原来的函数曲线。 常常在以下常常在以下2种情况下,用插值法求种情况下,用插值法求f(x)。情况一:情况一:f(x)同时满足下列条件。同时满足下列条件。 不知道或不存在函数不知道或不存在函数f(x)的具体形式。的具体形式。 知道知道f(x)上某些离散的点。上某些离散的点。情况二:情况二:f(x)同时满足下列条件。同时满足下列条件。 知道函数知道函数f(x)的具体形式。的具

3、体形式。 对于任意的对于任意的x求求f(x)较为困难。较为困难。 对于某些特定的对于某些特定的x求求f(x)较为容易。较为容易。 5.1 引言引言定义:定义:设设f(x)是区间是区间a,b上的连续函数,已知上的连续函数,已知f(x)在在a,b上上x=x0,x1,xn处的函数值(设处的函数值(设ax0 x1xnb,共,共n1个互异点),若存在函个互异点),若存在函数数p(x),满足,满足p(xi)=f(xi),其中,其中i=0,1,2,n,则称:,则称: x0,x1,xn为插值节点(插值基点),所求点为插值节点(插值基点),所求点x为插值点。为插值点。 a,b为插值区间,插值点为插值区间,插值点

4、x插值区间插值区间a,b为内插,否则为外推。为内插,否则为外推。 p(x)为插值函数,为插值函数,f(x)为被插函数。为被插函数。 p(xi)=f(xi),(其中,(其中i=0,1,2,n),为插值条件。),为插值条件。 R(x)=f(x)p(x)为插值余项。为插值余项。 插值函数的构造方法为插值法。插值函数的构造方法为插值法。常见的函数类型有幂函数、指数函数、三角函数等。在选择插值函数的常见的函数类型有幂函数、指数函数、三角函数等。在选择插值函数的类型时,应尽量遵循以下原则:类型时,应尽量遵循以下原则: 对任意插值条件,插值函数存在且唯一。对任意插值条件,插值函数存在且唯一。 易构造插值函数

5、。易构造插值函数。 易估计误差。易估计误差。幂函数除了满足以上条件之外,还具有高阶可导、可积,易手工计算,幂函数除了满足以上条件之外,还具有高阶可导、可积,易手工计算,易编程实现等优点,是使用较广泛的插值函数。易编程实现等优点,是使用较广泛的插值函数。5.1 引言引言定义:代数插值(多项式插值)的插值函数是幂函数。设插值节点共有定义:代数插值(多项式插值)的插值函数是幂函数。设插值节点共有n1个,依次为个,依次为x0,x1,xn,那么插值函数,那么插值函数p(x)是次数不超过是次数不超过n次的代次的代数多项式,称数多项式,称p(x)为为n次(代数)插值多项式,它的一般形式为:次(代数)插值多项

6、式,它的一般形式为:p(x)=a0a1xa2x2anxn。 由克莱姆法则,由克莱姆法则,a0,a1,an存在且唯一,因此插值多项式存在且唯一,因此插值多项式p(x)存在且唯存在且唯一。一。本章介绍代数插值、带导数的埃尔米特插值和分段插值。本章内容是第本章介绍代数插值、带导数的埃尔米特插值和分段插值。本章内容是第6章数值积分的基础。章数值积分的基础。计算方法计算方法Lagrange插值多项式插值多项式:01011010)( , )(xxxxxlxxxxxl )()()(11001xlyxlyxL 这样这样l0(x), l1(x)称为以称为以x0 , x1 为节点的为节点的插值基函数插值基函数。计

7、算方法计算方法计算方法计算方法例例 已知已知 , , , , 求求 10100 11121 115 y解解: : 这里这里x0=100,y0=10,x1=121,y1=11, 利用线性插值利用线性插值 1110012110010121100121)( xxxp714.10)115(115 py计算方法计算方法 为了提高精确度,我们进一步考察以下三点的插为了提高精确度,我们进一步考察以下三点的插值问题:值问题: 作二次多项式作二次多项式 P2(x)=a0 + a1x + a2x2使其满足使其满足 P2(x0)=y0 ,P2(x1)=y1 , P2(x2)=y2计算方法计算方法)()()()()(

8、)( )()()(120210221012012010210 xxxxxxxxxlxxxxxxxxxlxxxxxxxxxl 这样得这样得则:则:)()()()(2211001xlyxlyxlyxL l0(x) , l1(x) , l2(x) 称为以称为以 x0 , x1 , x2为节点的为节点的插值基函插值基函 数数。计算方法计算方法二次插值几何意义(单击播放)二次插值几何意义(单击播放)计算方法计算方法例例4 已知已知f (x)的观测数据的观测数据 x 0 1 2 4 f (x) 1 9 23 3 构造构造Lagrange插值多项式插值多项式解解 四个点可构造三次四个点可构造三次Lagran

9、ge插值多项式插值多项式: :基函基函数为数为 1478781)40)(20)(10()4)(2)(1()(230 xxxxxxxlxxxxxxxl38231)41)(21)(01()4)(2)(0()(231 xxxxxxxl 2324541)42)(12)(02()4)(1)(0()(计算方法计算方法xxxxxxxl12181241)24)(14)(04()2)(1)(0()(233 Lagrange插值多项式为插值多项式为 )()(303xlyxLkkk )(3)(23)(9)(3210 xlxlxlxl 12144541123 xxx5.2 拉格朗日插值拉格朗日插值拉格朗日插值函数一般

10、形式拉格朗日插值函数一般形式过过n1个插值节点个插值节点(x0,y0),(x1,y1),(xn,yn)的的n次拉格郎日插值函数次拉格郎日插值函数的一般形式为:的一般形式为: Ln(x)= =l0(x)y0+l1(x)y1+ln(x)ynniiiyxl0)(其中其中li(x)= = nijjjijxxxx0)()()()()()(110110niiiiiiniixxxxxxxxxxxxxxxx式中式中i=0,1,2,n。称称li(x)为拉格郎日插值基函数。为拉格郎日插值基函数。 对对2个插值节点个插值节点(x0,y0),(x1,y1)的的1次拉格郎日插值函数(即线性拉格郎日次拉格郎日插值函数(即

11、线性拉格郎日插值函数)插值函数) 的几何含义为经过这的几何含义为经过这2个个插值节点的直线。插值节点的直线。对对3个插值节点个插值节点(x0,y0),(x1,y1),(x2,y2)的的2次拉格郎日插值次拉格郎日插值函数函数(即抛物线(即抛物线拉格郎日插值拉格郎日插值函数函数) 的几何含义为经过这的几何含义为经过这3个个插值节点的抛物线。插值节点的抛物线。拉格郎日插值余项函数拉格郎日插值余项函数Rn(x)=被插函数被插函数f(x)插值函数插值函数Ln(x)。 5.2 拉格朗日插值拉格朗日插值二、拉格郎日插值函数的余项二、拉格郎日插值函数的余项定理:拉格郎日插值余项函数定理:拉格郎日插值余项函数R

12、n(x)= Wn(x),其中其中Wn(x)= =(x-x0)(x-x1)(x-x2)(x-xn),当当xa,b时,时,a,b,且,且与与x有关。有关。 )!1()()1(nfnniixx0)(5.2 拉格朗日插值拉格朗日插值三、三、n次拉格郎日插值的算法次拉格郎日插值的算法输入插值节点的个数n。输入插值节点xn,yn,插值点_x。_y=0;for(i=0;i=n-1;i+) t=1; for(j=0;j=n-1;j+) ji Y N t*=(_x-xj)/(xi-xj); _y+=t*yi;输出插值点(_x,_y)。5.2 拉格朗日插值拉格朗日插值n次拉格郎日插值对应的程序(次拉格郎日插值对应

13、的程序(1/2)#include #include #define MAXSIZE 50void input(double xMAXSIZE,double yMAXSIZE,long n);void main(void)double xMAXSIZE,yMAXSIZE,_x,_y,t;long n,i,j;printf(n请输入插值节点的个数:请输入插值节点的个数:);scanf(%ld,&n);input(x,y,n);printf(n请输入插值点:请输入插值点:);scanf(%lf,&_x);_y=0;for(i=0;i=n-1;i+)t=1;for(j=0;j=n-1;

14、j+)if(j!=i)t*=(_x-xj)/(xi-xj);_y+=t*yi;printf(n插值点插值点(x,y)=(%lf,%lf)。,_x,_y);5.2 拉格朗日插值拉格朗日插值n次拉格郎日插值对应的程序(次拉格郎日插值对应的程序(2/2)void input(double xMAXSIZE,double yMAXSIZE,long n)long i;for(i=0;i=n-1;i+)printf(n请输入插值节点请输入插值节点x%ld,y%ld:,i,i);scanf(%lf,%lf,&xi,&yi);一、差商及其性质一、差商及其性质定义定义 函数函数y= f(x)在

15、区间在区间xi ,xi+1上的平均变上的平均变化率化率iiiiiixxxfxfxxf 111)()(,自变量之差和因变量之差之比叫自变量之差和因变量之差之比叫差商差商 。 称为称为f(x)关于关于xi , xi+1 的一阶差商的一阶差商,并记为并记为fxi ,xi+1。5.3 5.3 牛顿插值牛顿插值计算方法计算方法计算方法计算方法iiiiiiiiixxxxfxxfxxxf 212121,01102110,xxxxxfxxxfxxxfmmmm m阶差商阶差商二阶差商二阶差商计算方法计算方法 fxi,xj,xk是是指指fxi , xj , xk=fxj , xk- fxi , xj xk- xi

16、021021210,xxxxfxxfxxxf 例例如如:一般的一般的,可定义区间可定义区间xi, xi+1 , xi+n上的上的n阶差商为阶差商为ininiiiniiiniiixxxxxfxxxfxxxf ,.,.,.,112115.3 差商与牛顿插值差商与牛顿插值差商的递归定义差商的递归定义定义:定义:f(x)在在x0点处的点处的0阶差商阶差商fx0=f(x0) f(x)在在x0,x1点处的点处的1阶差商阶差商fx0,x1= 1010)()(xxxfxff(x)在在x0,x1,x2点处的点处的2阶差商为阶差商为fx0,x1,x2= 202110,xxxxfxxff(x)在在x0,x1,xn处

17、的处的n阶差商阶差商fx0,x1,xn= nnnxxxxxfxxxf021110,说明:定义中要求当说明:定义中要求当ij时时xixj,除此之外,对点,除此之外,对点xi具体代表哪一点没有具体代表哪一点没有限制(可以把限制(可以把xi换成任意换成任意1点),对各点的次序也没有限制(即不要求点),对各点的次序也没有限制(即不要求x0 x1xn)。)。 性质性质1 如果如果f(x)是代数多项式,那么对是代数多项式,那么对f(x)求求1次差商,降次差商,降1次幂。次幂。 5.3 差商与牛顿插值差商与牛顿插值二、差商的性质二、差商的性质对对m阶多项式阶多项式f(x)=a0a1xa2x2amxm求求n阶

18、差商阶差商fx,x0,x1,xn-1, nm时,时, fx,x0,x1,xn-1是是x的的mn次多项式;次多项式; n=m时,时, fx,x0,x1,xn-1是是f(x)的的m阶项阶项amxm的系数的系数am; nm时,时, fx,x0,x1,xn-1恒为恒为0。 如果如果f(x)不能用有限次多项式精确表示(如不能用有限次多项式精确表示(如f(x)为三角函数),那么可能为三角函数),那么可能无论对无论对f(x)求多少次差商,结果也不会恒为求多少次差商,结果也不会恒为0。 性质性质2 f(x)在在x0,x1,xn处的处的n阶差商也可以定义为:阶差商也可以定义为:niniiiiiiixxxxxxx

19、xxf0110)()()()(fx0,x1,xn= 由性质由性质2可知,交换节点的次序,不改变差商的值可知,交换节点的次序,不改变差商的值。性质性质3 如果如果f(x)在在a,b上存在上存在n阶导数,节点阶导数,节点x0,x1,xna,b,那么至少,那么至少有有1点点a,b,满足,满足fx,x0,x1,xn-1=!)()(nfn5.3 差商与牛顿插值差商与牛顿插值三、差商表三、差商表xkf(xk)1阶差商2阶差商3阶差商4阶差商x0f(x0)x1f(x1)fx0,x1x2f(x2)fx1,x2fx0,x1,x2x3f(x3)fx2,x3fx1,x2,x3 fx0,x1,x2,x3x4f(x4)

20、fx3,x4fx2,x3,x4 fx1,x2,x3,x4fx0,x1,x2,x3,x4 差商表对节点的次序没有限制。当新增加节点时,可以把新增节点添加到差商表对节点的次序没有限制。当新增加节点时,可以把新增节点添加到差商表最下差商表最下1行,原有节点的数据不变。行,原有节点的数据不变。 5.3 差商与牛顿插值差商与牛顿插值四、牛顿插值函数和余项四、牛顿插值函数和余项过过n1个插值节点个插值节点(x0,f(x0),(x1,f(x1),(xn,f(xn)的的n次牛顿插值次牛顿插值函数的一般形式为:函数的一般形式为: Nn(x)=fx0fx0,x1(x-x0)fx0,x1,x2(x-x0)(x-x1

21、)fx0,x1,xn(x-x0) (x-x1)(x-xn-1)牛顿插值余项函数牛顿插值余项函数Rn(x)=被插函数被插函数f(x)插值函数插值函数Nn(x)=fx,x0,x1,xn(x-x0) (x-x1)(x-xn)=fx,x0,x1,xnWn(x)其中其中Wn(x)=(x-x0) (x-x1)(x-xn) 由代数插值的存在唯一性,经过由代数插值的存在唯一性,经过n1个插值节点个插值节点(x0,y0),(x1,y1),(xn,yn)的的n次拉格郎日插值函数与次拉格郎日插值函数与n次牛顿插值函数是一致的,因此它们次牛顿插值函数是一致的,因此它们的余项函数也是一致的。的余项函数也是一致的。 因此

22、因此Rn(x)=fx,x0,x1,xnWn(x)= Wn(x),与差商的性质与差商的性质3吻合。吻合。 )!1()()1(nfn计算方法计算方法xifxifxi,xi+1fxi,xi+1,xi+21 11 14 42 29 93 333333. 01412 2 . 04923 01667. 01933333. 02 . 0 例例 已知已知 x = 1, 4, 9 的平方根值,求的平方根值,求 解解:7计算方法计算方法N2(7)=1+(7-1)0.33333+ (7-1)(7-4)(-0.01667)= 2.69992+ (x- x0) (x-x1) fx1,x0,x+ (x- x0) fx1,

23、x0=f(x0)N(x)计算方法计算方法 例例 已知已知 x=0, 2, 3, 5 对应的函数值为对应的函数值为 y=1, 3, 2, 5 , 作三次作三次Newton插值多项式。插值多项式。 xi f(xi) 一阶差商一阶差商 二阶差商二阶差商 三阶差商三阶差商 5 50 12 33 21-13/2-2/35/63/10计算方法计算方法)()(,)(,)(,)()(21032101021001003xxxxxxxxxxfxxxxxxxfxxxxfxfxN )3)(2(103)2(321 xxxxxx 所求的三次所求的三次Newton插值多项式为插值多项式为5.3 差商与牛顿插值差商与牛顿插值

24、五、五、n次牛顿插值次牛顿插值的算法的算法输入插值节点的个数n。输入插值节点(xn,fn0),插值点_x。for(j=1;j=n-1;j+) 构造差商表 for(i=j;i=0;i-) _y=fii+(_x-xi)*_y;输出插值点(_x,_y)。5.3 差商与牛顿插值差商与牛顿插值n次牛顿插值次牛顿插值对应的程序(对应的程序(1/2)#include #include #define MAXSIZE 50void input(double xMAXSIZE,double fMAXSIZEMAXSIZE,long n);void main(void)double xMAXSIZE,fMAXSI

25、ZEMAXSIZE,_x,_y;long n,i,j;printf(n请输入插值节点的个数:请输入插值节点的个数:);scanf(%ld,&n);input(x,f,n);printf(n请输入插值点:请输入插值点:);scanf(%lf,&_x);for(j=1;j=n-1;j+)for(i=j;i=0;i-)_y=fii+(_x-xi)*_y;printf(n插值点插值点(x,y)=(%lf,%lf)。,_x,_y);5.3 差商与牛顿插值差商与牛顿插值n次牛顿插值次牛顿插值对应的程序(对应的程序(2/2)void input(double xMAXSIZE,double

26、fMAXSIZEMAXSIZE,long n)long i;for(i=0;i=n-1;i+)printf(n请输入插值节点请输入插值节点x%ld,y%ld:,i,i);scanf(%lf,%lf,&xi,&fi0);定义:如果某插值过程的插值节点位于定义:如果某插值过程的插值节点位于x=x0,x1,xn处,且处,且xi-xi-1=h(i=1,2,n),),h0,那么这个插值就是等距节点插值,那么这个插值就是等距节点插值,h为步长。为步长。 5.4 差分与牛顿差分插值差分与牛顿差分插值一、差分和等距节点插值的定义一、差分和等距节点插值的定义等距节点插值的满足等距节点插值的满足x

27、i=x0+ih(i=0,1,2,n),且),且x0 x1xn。 在做等距节点插值时,差商演变为差分,牛顿插值简化为牛顿差分插值。在做等距节点插值时,差商演变为差分,牛顿插值简化为牛顿差分插值。差分有向前差分和向后差分差分有向前差分和向后差分。 计算方法计算方法 设函数设函数y=f(x)在等距节点在等距节点xi=x0+ih (i=0,1, ,n)上上的函数值为的函数值为fi=f(xi)(h为步长为步长)定义定义: fi=fi+1-fi 和和 fi=fi-fi-1分别称为函数分别称为函数f(x)在点在点xi处的一阶向前差分和一阶向处的一阶向前差分和一阶向后差分后差分。 一般地一般地, f(x) 在

28、点在点 xi 处的处的 m 阶向前差分和阶向前差分和 m 阶向阶向后差分分别为后差分分别为 mfi= m-1fi+1- m-1fi 和和 mfi= m-1fi- m-1fi-15.4 差分与牛顿差分插值差分与牛顿差分插值向前差分的递归定义向前差分的递归定义 向后差分的递归定义向后差分的递归定义 0阶向前差分阶向前差分0yi=yi0阶向后差分阶向后差分 0yi=yi1阶向前差分阶向前差分1yi=0yi+1-0yi1阶向后差分阶向后差分 1yi= 0yi- 0yi-1n阶向前差分阶向前差分nyi=n-1yi+1-n-1yin阶向后差分阶向后差分 nyi= n-1yi- n-1yi-1其中其中1阶向

29、前差分阶向前差分1yi可以简记为可以简记为yi,1阶向后差分阶向后差分 1yi可以简记为可以简记为 yi 。 5.4 差分与牛顿差分插值差分与牛顿差分插值二、差分表二、差分表向向前前差差分分表表xk f(xk) 1阶向前差分阶向前差分 2阶向前差分阶向前差分 3阶向前差分阶向前差分 x0 f(x0) y02y03y0 x1 f(x1) y12y1x2 f(x2) y2x3 f(x3) xk f(xk) 1阶向后差分阶向后差分 2阶向后差分阶向后差分 3阶向后差分阶向后差分 x0 f(x0) x1 f(x1) y1x2 f(x2) y2 2y2x3 f(x3) y3 2y3 3y3向向后后差差分

30、分表表性质性质1 对相同插值节点构造的向前差分表各项和向后差分表各项按位置对对相同插值节点构造的向前差分表各项和向后差分表各项按位置对应相等,对应关系式为应相等,对应关系式为kyi= kyi+k,或者表示为,或者表示为 kyi=kyi-k 。 5.4 差分与牛顿差分插值差分与牛顿差分插值三、差分的性质三、差分的性质显然,向前差分表各项与向后差分表各项按位置对应相等。显然,向前差分表各项与向后差分表各项按位置对应相等。 计算方法计算方法等距节点情况下等距节点情况下xi= x0+ih ,用差分表示差商:,用差分表示差商:010110,xxxfxfxxf =y1 y0h= y01!hfx1 , x2

31、=y2 y1h= y11!hfx0,x1,x2=fx1,x2- fx0,x1x2 x0= y11!h y01!h2h= y1- y02h2= 2y02!h2fx1,x2,x3=fx3,x2- fx2,x1x3 x1= y21!h y11!h2h= y2- y12!h2= 2y12!h2 ,.,10nxxxf ny0n!hn nNn(x)=常量常量5.4 差分与牛顿差分插值差分与牛顿差分插值四、牛顿差分插值函数和余项四、牛顿差分插值函数和余项设插值节点为设插值节点为x0,x1,xn,且,且xixi-1=h(i=1,2,n),步长),步长h0,那,那么么xi=x0ih(i=0,1,2,n),且),

32、且x0 x1xn 若插值点若插值点x=x0th,插值节点为,插值节点为(x0,y0),(x1,y1),(xn,yn),则,则n次次牛顿前插公式的一般形式为:牛顿前插公式的一般形式为: Nn(x)=Nn(x0+th)=y0+ty0+ 2y0+ 3y0+ ny0! 2) 1( tt! 3)2)(1(ttt!) 1()2)(1(nntttt余项函数余项函数Rn(x)=Rn(x0+th)= hn+1f(n+1)()。)!1()()2)(1(nntttt 若插值点若插值点x=xnth,插值节点为,插值节点为(x0,y0),(x1,y1),(xn,yn),则,则n次次牛顿后插公式的一般形式为:牛顿后插公式

33、的一般形式为: Nn(x)=Nn(xn+th)=yn+t yn+ 2yn+ 3yn+ nyn! 2) 1( tt! 3)2)(1(ttt!) 1()2)(1(nntttt余项函数余项函数Rn(x)=Rn(xn+th)= hn+1f(n+1)()。)!1()()2)(1(nntttt某些插值问题不仅给出了插值节点的坐标位置,还给出了某些插值节点某些插值问题不仅给出了插值节点的坐标位置,还给出了某些插值节点处的若干阶导数值。它不仅要求插值曲线经过插值节点,还要求插值曲处的若干阶导数值。它不仅要求插值曲线经过插值节点,还要求插值曲线在插值节点处的各阶导数值与给出的各阶导数值相等。满足这种要求线在插值

34、节点处的各阶导数值与给出的各阶导数值相等。满足这种要求的多项式插值称为埃尔米特(的多项式插值称为埃尔米特(Hermite)插值。)插值。 5.5 埃尔米特插值埃尔米特插值一、埃尔米特插值简介一、埃尔米特插值简介定义:定义:若存在不超过若存在不超过2n1次的多项式函数次的多项式函数H(x),使,使H(x)与被插函数与被插函数f(x)在插值节点在插值节点x=x0,x1,xn(设(设x0 x1xn)处的函数值和)处的函数值和1阶导阶导数值相等,即数值相等,即H(xi)=f(xi)且且H(xi)=f(xi) ,其中,其中i=0,1,2,n,则称则称H(x)为带为带1阶导数的埃尔米特插值函数,称这种插值

35、为带阶导数的埃尔米特插值函数,称这种插值为带1阶导数的埃尔米特阶导数的埃尔米特插值。插值。 带带1阶导数的埃尔米特插值函数是唯一的。阶导数的埃尔米特插值函数是唯一的。 由埃尔米特插值的定义,可以由待定系数法求解埃尔米特插值函数。由埃尔米特插值的定义,可以由待定系数法求解埃尔米特插值函数。 2点点3次埃尔米特插值是一种使用广泛的插值方法。仅有次埃尔米特插值是一种使用广泛的插值方法。仅有2个插值节点的个插值节点的带带1阶导数的埃尔米特插值函数是阶导数的埃尔米特插值函数是1个个3次代数多项式函数,因此又称为次代数多项式函数,因此又称为2点点3次埃尔米特插值。次埃尔米特插值。 5.5 埃尔米特插值埃尔

36、米特插值二、二、2点点3次埃尔米特插值次埃尔米特插值 设插值节点在设插值节点在x=x0,x1处,对被插函数处,对被插函数f(x)的的2点点3次埃尔米特插值函数的次埃尔米特插值函数的一般形式为:一般形式为: H(x)=h0(x)f(x0)+h1(x)f(x1)+0(x)f(x0)+1(x)f(x1)= f(x0)+ f(x1)010 21xxxx2101xxxx101 21xxxx2010 xxxx(x-x0) f(x0)(x-x0) f(x1)2101xxxx2010 xxxx上述上述2点点3次埃尔米特插值可以推广到次埃尔米特插值可以推广到n1个插值节点的带个插值节点的带1阶导数的埃阶导数的埃

37、尔米特插值。尔米特插值。5.5 埃尔米特插值埃尔米特插值三、三、带带1阶导数的埃尔米特插值阶导数的埃尔米特插值设插值节点在设插值节点在x=x0,x1,xn,处,对被插函数处,对被插函数f(x)的带的带1阶导数埃尔米特阶导数埃尔米特插值函数的一般形式为:插值函数的一般形式为: H(x)= +niiixfxh0)()(niiixfxh0)()(其中辅助函数其中辅助函数hi(x)=(1-2li(xi)(x-xi)li2(x),i(x)=(x-xi)li2(x)li(x)为拉格郎日插值基函数,即为拉格郎日插值基函数,即li(x)=)()()()()()(110110niiiiiiniixxxxxxxx

38、xxxxxxxx式中式中i=0,1,2,n。 5.5 埃尔米特插值埃尔米特插值n个插值节点带个插值节点带1阶导数的埃尔米特插值的算法阶导数的埃尔米特插值的算法 输入插值节点的个数n。输入插值节点的坐标xn,fn及1阶导数dfn,插值点_x。_y=0;for(i=0;i=n-1;i+) l=1; 计算li(x) for(j=0;j=n-1;j+) ji Y N l*=(_x-xj)/(xi-xj); dl=0; 计算li(xi) for(j=0;j=n-1;j+) ji Y N dl+=1/(xi-xj); _y+=(1-2*dl*(_x-xi)*l*l*fi+(_x-xi)*l*l*dfi;输

39、出插值点(_x,_y)。5.5 埃尔米特插值埃尔米特插值n个插值节点带个插值节点带1阶导数的埃尔米特插值的程序阶导数的埃尔米特插值的程序(1/2)#include #define MAXSIZE 50void input(double x,double f,double df,long n);void main(void)double xMAXSIZE,fMAXSIZE,dfMAXSIZE,_x,_y,l,dl;long n,i,j;printf(n请输入插值节点的个数:请输入插值节点的个数:);scanf(%ld,&n);input(x,f,df,n);printf(n请输入插值点:

40、请输入插值点:);scanf(%lf,&_x);_y=0;for(i=0;i=n-1;i+)l=1;for(j=0;j=n-1;j+)if(j!=i)l*=(_x-xj)/(xi-xj);dl=0;for(j=0;j=n-1;j+)if(j!=i)dl+=1/(xi-xj);_y+=(1-2*dl*(_x-xi)*l*l*fi+(_x-xi)*l*l*dfi; printf(n插值点插值点(x,y)=(%lf,%lf)。,_x,_y);5.5 埃尔米特插值埃尔米特插值n个插值节点带个插值节点带1阶导数的埃尔米特插值的程序阶导数的埃尔米特插值的程序(2/2)void input(double x,double f,double df,long n)long i;for(i=0;i=n-1;i+)printf(n请输入插值节点请输入插值节点x%ld,f%ld,df%ld:,i,i,i);scanf(%lf,%lf

温馨提示

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

评论

0/150

提交评论