1、第6章 插值法 6.1 引言引言6.2 拉格朗日插值拉格朗日插值6.3 均差与牛顿插值均差与牛顿插值 6.4 差分与等距节点插值差分与等距节点插值6.5 Hermite插值插值6.6 分段低次插值分段低次插值6.7 三次样条插值三次样条插值6.8 MATLAB解法及主要程序解法及主要程序习题习题6数值实验题数值实验题 第6章 插值法 许多实际问题都是用函数y=f(x)来表示某种内在规律的数量关系的,其中相当一部分函数是通过实验或观测得到的。虽然y=f(x)在某个区间a, b上是存在的,有的还是连续的,但却只能给出a,b上一系列点xi的函数值yi=f(xi)(i=0, 1, 2, n)。这只是一
2、张函数表。有的函数虽然有解析表达式,但由于计算复杂,使用不方便,通常也造一个函数表,如我们熟悉的三角函数表、对数表、平方根和立方根表, 等等。为了研究函数的变化规律,往往需要求出不在表上的函数值。 6.1 引引 言言 第6章 插值法 因此,我们希望根据给定的函数表做一个既能反映函数f(x)的特性,又便于计算的简单函数P(x),用P(x)近似f(x)。通常选一类较简单的函数(如代数多项式或分段代数多项式)作为P(x),并使P(xi)=f(xi)对i=0, 1, 2, n成立。这样确定的函数P(x)就是我们希望得到的插值函数。下面我们给出有关插值法的定义。第6章 插值法 插值的最终目的就是要在所给
3、函数表中再“插”进一些所需要的函数值,即计算插值点x(xxi)上的函数值f(x),而插值法的关键在于求插值函数P(x)。事实上,插值函数P(x)的选取是事先人为给定的,若选取P(x)为次数不超过n的代数多项式,即P(x)=a0+a1x+a2x2+anxn (6.2)第6章 插值法 其中ai(i=0, 1, 2, , n)为实数,则称P(x)为插值多项式,相应的插值方法称为代数多项式插值; 若P(x)为分段的多项式,就称为分段插值; 若P(x)为三角多项式,就称为三角插值。本章只讨论代数多项式插值。从几何上看,插值法就是求曲线y=P(x),使其通过给定的n+1个点(xi, yi), i=0, 1
4、, 2, n,并用它近似已知曲线y=f(x),如图6.1所示.第6章 插值法 图 6.1 第6章 插值法 插值方法源于科学研究的实践。17世纪的西欧科学家探索活动空前活跃,出现了诸如哥伦布发现“新大陆”、麦哲伦环球航行等一系列重大事件,科学活动的客观需要强烈地刺激了插值方法的深入研究。其实,插值方法是一类古老的数学方法,早在一千多年前的隋唐时期,中华先贤在制定历法的过程中就已经广泛地应用了插值技术。公元6世纪,隋唐时期的刘焯已将等距节点的二次插值应用于天文计算,而直到17世纪Newton才建立起等距节点上一般的插值公式,插值的基本理论和结果也随之得以逐步完善,其应用日益增多。 第6章 插值法
5、电子计算机广泛使用以后,由于航空、造船、精密机械加工等实际问题的需要,使插值法在实践或理论上显得更为重要,并得到进一步发展,尤其是近几十年发展起来的样条(Spline)插值更获得了广泛的应用。函数插值的基本问题有: 存在唯一性, 构造方法, 截断误差和收敛性,以及数值计算的稳定性等。定理定理6.1(插值多项式的存在唯一性) 在n+1个互异节点xi(i=0, 1, 2, , n)处满足插值条件(6.1)的次数不超过n的多项式(6.2)存在且唯一。第6章 插值法 证明证明 对于多项式(6.2)应用条件(6.1)得a0+a1x0+a2+an=y0a0+a1x1+a2+an=y1 a0+a1xn+a2
6、+an=yn (6.3)20 x21x21xnx0nnx1nnx第6章 插值法 这是关于a0, a1, , an的n+1阶线性方程组,其系数行列式Vn(x0, x1, , xn)=nnnnnnxxxxxxxxx102211200111第6章 插值法 为范得蒙(Vandermonde)行列式,且Vn(x0, x1, , xn)= (xi-xj)由于已知xi(i=0, 1, , n)互异,所以所有因子xi-xj0,于是Vn(x0, x1, , xn)0由克莱姆(Cramer)法则,方程组(6.3)的解存在且唯一,所以满足条件(6.1)的多项式(6.2)存在且唯一。定理的存在性说明插值问题总是有解的
7、,唯一性说明插值多项式的构造与所用的方法无关。 nij0第6章 插值法 根据插值条件(6.1)通过求解线性方程组(6.3)来确定插值多项式的系数,其计算量较大,因此常用其它方法来构造插值多项式,而插值多项式的唯一性保证了用这些方法构造的函数P(x)与解方程组(6.3)得到的函数是一致的。 本节将采用插值基函数的方法,构造一种具有一定特点的插值多项式,即拉格朗日(Lagrange)插值多项式。 6.2 拉格朗日插值拉格朗日插值 第6章 插值法 先以两点插值问题为例来说明插值基函数及拉格朗日插值多项式的构造方法。已知yi=f(xi)(i=0,1),求满足条件P1(xi)=yi(i=0, 1)的插值
8、多项式P1(x)。根据解析几何的知识,所求的P1(x)为过点(x0, y0)和点(x1, y1)的直线,即P1(x)=y0+(x-x0)0101xxyy第6章 插值法 整理得P1(x)=式中l0(x)=,l1(x)=。 显然l0(x),l1(x)具有以下性质。110010100101)()(yxlyxlyxxxxyxxxx101xxxx010 xxxx第6章 插值法 性质性质1 l0(xi)=性质性质2 l0(x), l1(x)为由插值节点唯一确定的线性函数。称上述一次多项式l0(x),l1(x)为节点x0, x1上的一次插值基函数。可以看出,节点x0, x1上的一次插值基函数的次数为插值节点
9、个数减1,基函数组中所含的函数个数与插值节点的个数相同。.1 10 0)(,1 00 11iixliii第6章 插值法 而满足P1(xi)=yi(i=0, 1)的插值多项式P1(x)就是节点x0,x1上插值基函数的线性组合,其组合系数分别为y0,y1。这种表示为插值基函数线性组合的一次插值多项式就是一次拉格朗日插值多项式。当给定n+1个插值节点后,可类似地定义n次插值基函数,并以此为基础构造n次拉格朗日插值多项式。 第6章 插值法 6.2.1 插值基函数插值基函数定义定义6.2 若n次多项式lk(x)(k=0, 1, 2, , n)在n+1个插值节点x0 x1xn上满足条件lk(xi)=ik=
10、 (i, k=0, 1, 2, , n)则称这n+1个n次多项式l0(x), l1(x), , ln(x)为插值节点x0, x1, , xn上的n次插值基函数。kiki 0 1第6章 插值法 下面建立其具体表达式。由于ik时,lk(xi)=0,所以x0, x1, , xk-1, xk+1, , xn为lk(x)的零点。故设lk(x)=Ak(x-x0)(x-x1)(x-xk-1)(x-xk+1)(x-xn)由lk(xk)=1,得Ak=(k=0, 1, , n)()()(1110nkkkkkkxxxxxxxx第6章 插值法 于是lk(x)= (k=0, 1, , n)()()()()()(1101
11、10nkkkkkknkkxxxxxxxxxxxxxxxx第6章 插值法 显然lk(x)具有以下性质:性质性质1 lk(xi)= (k=0, 1, , n)。插值基函数的取值情况可用图形表示,如图6.2所示, 其中上、下图分别为n=1和n=2 时的插值基函数。kiki 0 1第6章 插值法 图 6.2 Lagrange插值基函数第6章 插值法 性质性质2 lk(x)(k=0, 1, , n)为由插值节点x0, x1, , xn唯一确定的n次函数。性质性质3 基函数组所含的基函数个数与插值节点个数相同。第6章 插值法 6.2.2 拉格朗日插值多项式拉格朗日插值多项式下面以n次插值基函数为基础构造满
12、足插值条件Ln(xk)=yk (k=0, 1, , n) (6.4)的插值多项式Ln(x)。第6章 插值法 容易验证,n次插值基函数的线性组合lk(x)yk在插值节点xk处的值等于yk(k=0, 1, , n)。 故利用n次插值基函数可以将满足条件(6.4)的插值多项式Ln(x)表示为 (6.5)称Ln(x)为拉格朗日插值多项式。nk 0kjkjnjknkknkkkkkknkknkkknknyxxxxyxxxxxxxxxxxxxxxxyxlxL0011011000 )()()()()()()()(第6章 插值法 当n=1时,有L1(x)= (6.6) 当n=2时,有L2(x)= (6.7)10
13、100101yxxxxyxxxx212021012101200201021)()()()()()(yxxxxxxxxyxxxxxxxxyxxxxxxxx第6章 插值法 L1(x),L2(x)分别称为线性插值多项式和二次插值多项式, 其几何意义如图6.3所示。其中图6.3(a)表示过点(x0, y0),(x1, y1)的一条直线,图6.3(b)表示通过三点(x0, y0),(x1, y1),(x2, y2)的一条抛物线,所以也称二次插值为抛物插值。第6章 插值法 图 6.3 第6章 插值法 若记n+1(x)= (x-xi) (6.8)则有n+1(xk)= (xk-xi)。于是Ln(x)也可写为L
14、n(x)=(6.9)ni 0ni 0kknknnkyxxxx)()()(110第6章 插值法 6.2.3 拉格朗日插值多项式的余项拉格朗日插值多项式的余项若在a,b上用Ln(x)近似f(x),则其截断误差为Rn(x)=f(x)-Ln(x),也称为插值多项式的余项。关于插值余项估计有以下定理。第6章 插值法 定理定理6.2 设f (n)(x)在a,b上连续,f(n+1)(x)在(a, b)内存在,节点ax0 x1xnb,Ln(x)是满足条件(6.4)的插值多项式,则对任何xa,b,插值余项Rn(x)=f(x)-Ln(x)=n+1(x) (6.10)!1()()1(nfn第6章 插值法 这里(a,
15、b)且依赖于x。证明证明 由已知条件知Rn(x)在节点xk(k=0, 1, , n)上为零,即Rn(xk)=0(k=0, 1, , n),于是Rn(x)=K(x)(x-x0)(x-x1)(x-xn)=K(x)n+1(x) (6.11)其中K(x)是与x有关的待定函数。 第6章 插值法 现把x看成a,b上的一个固定点,作函数(t)=f(t)-Ln(t)-K(x)(t-x0)(t-x1)(t-xn)根据插值条件及余项定义,可知(t)在点x0, x1, , xn及x处均为零, 故(t)在a,b上有n+2个零点。 根据罗尔(Rolle)中值定理, (t)在(t)的两个零点之间至少有一个零点, 故(t)
16、在(a, b)内至少有n+1个零点。对(t)再应用罗尔中值定理,可知(t)在(a, b)内至少有n个零点。 第6章 插值法 依此类推,(n+1)(t)在(a, b)内至少有一个零点,设为(a, b), 则 (n+1)()=f (n+1)()-(n+1)!K(x)=0于是K(x)=,(a,b)且依赖于x将它代入式(6.11),就得到余项表达式(6.10)。)!1()()1(nfn第6章 插值法 应当指出,余项表达式只有在f(x)的高阶导数存在时才能应用。在(a, b)内的具体位置通常不可能给出,如果我们可以求出|f(n+1)(x)|=Mn+1,那么用插值多项式Ln(x)逼近f(x)的误差限即为|
17、Rn(x)|n+1(x)| (6.12)bxamax)!1(1nMn第6章 插值法 当n=1时,线性插值余项为R1(x)=f()(x-x0)(x-x1), x0, x1 (6.13)且进一步可以证明,若x在x0与x1之间,则|R1(x)|f(x)| (6.14)21bxaxxmax8)(201第6章 插值法 当n=2时,抛物插值余项为R2(x)=f()(x-x0)(x-x1)(x-x2),x0, x2 (6.15) 例例6.1 设f(x)=x4,用余项定理写出节点-1,0,1,2上的三次插值多项式。解解 根据余项定理f(x)-L3(x)= (x-x0)(x-x1)(x-x2)(x-x3)61!
18、 4)()4(f第6章 插值法 即x4-L3(x)=x(x+1)(x-1)(x-2)所以L3(x)=2x3+x2-2x例例6.2 Laplace积分函数f(x)= dt的函数值已造成函数表。 20e2tx第6章 插值法 当在x0=4,x1=5之间用线性插值计算f(x)的近似值时,误差有多大?解解 由误差估计式(6.14),有|R1(x)|f()|=|f()|, (4,5)由于8)45(2815 , 4, 0e ) 12(4)(e4)(,e2)(2222 xxxfxxfxfxxx第6章 插值法 即f(x)是增函数,从而|f(x)|=(x4,5)是减函数。 因此 |f(x)|=max(|f(4)|
19、f(5)|)=|f(4)|1.015 8610-6故有|R1(x)|f(x)|0.12710-62e4xx54maxx54max81x第6章 插值法 例例6.3已知sin0.32=0.314 567,sin0.34=0.333 487,sin0.36=0.352 274,用线性插值和抛物插值计算sin0.3367的值并估计截断误差。解解 由题意取x0=0.32,y0=0.314 567,x1=0.34,y1=0.333 487,x2=0.36,y2=0.352 274。第6章 插值法 用线性插值计算,取x0=0.32及x1=0.34,由公式(6.6)得330365. 0 333487. 032
20、. 034. 032. 03367. 0314567. 034. 032. 034. 03367. 0 3367. 03367. 0)3367. 0(3367. 0sin101001011yxxxyxxxL第6章 插值法 其截断误差由式(6.13)得|R1(x)|(x-x0)(x-x1)|其中M2=|f(x)|,因f(x)=sinx,f(x)=-sinx。可取M2=|sinx|=sinx1 0.3335,于是|R1(0.3367)|=|sin 0.3367-L1(0.3367)| 0.33350.0167 0.0033 0.92 10-510maxxxx22M10maxxxx21第6章 插值法
21、 用抛物插值计算sin0.3367时,由公式(6.7)得sin0.3367330274. 0 0008. 0105511. 0352274. 0 0004. 01089. 333487. 00008. 0107689. 0314567. 0 )3367. 0( )()()()()()(4442120210221012012010210Lxxxxxxxxyxxxxxxxxyxxxxxxxxy第6章 插值法 这个结果与6位有效数字的正弦函数表完全一样,这说明查表时用二次插值精度已相当高了。其截断误差限由式(6.15)得|R2(x)|(x-x0)(x-x1)(x-x2)|其中M3=|f(x)|=co
22、sx00.828,于是|R2(0.3367)|=|sin0.3367-L2(0.3367)| 0.8280.0167 0.033 0.02330.178 10-663M20maxxxx61第6章 插值法 6.3.1 均差及其性质均差及其性质前面介绍的拉格朗日插值多项式,其形式具有对称性,且便于编程计算。但当插值节点增加时全部插值基函数lk(x)(k=0, 1, , n)均要随之变化,整个公式也将发生变化,并且被插函数的表格形式也使得插值余项难以估计,这在实际计算中是很不方便的。 6.3 均差与牛顿插值均差与牛顿插值 第6章 插值法 本节介绍的牛顿插值克服了这些缺点,当增加插值节点时,只需在原有
23、的基础上增加部分计算工作量,且可用于被插函数由表格形式给出时的余项估计。为了给出均差的概念,把插值多项式表示为以下便于计算的形式:Nn(x)=a0+a1(x-x0)+a2(x-x0)(x-x1)+an(x-x0)(x-x1)(x-xn-1)(6.16)第6章 插值法 其中a0, a1, , an为待定常数,可由插值条件Nn(xi)=yi fi (i=0, 1, , n) (6.17)确定。当x=x0时,Nn(x0)=a0=f0。def第6章 插值法 当x=x1时,Nn(x1)=a0+a1(x1-x0)=f1,推得a1=1201010202xxxxffxxff第6章 插值法 依此递推可得到a3,
24、 , an。为写出系数ak的一般表达式,先引进均差定义。定义定义6.3 给定函数f(x)在互异节点x0 x1xn处的函数值分别为f(x0),f(x1), ,f(xn),称fxi, xj= (i j)为函数f(x)关于点xi, xj的一阶均差。 jijixxxfxf)()(第6章 插值法 称fxi, xj, xk= (ij k)为函数f(x)关于点xi, xj, xk的二阶均差。一般地,称fx0, x1, , xk= (6.18)kiijjixxxxfxxf,kkkxxxxxfxxxf021110,第6章 插值法 为函数f(x)关于点x0, x1, , xk的k阶均差, 即f(x)的k-1阶均差
25、的均差称为k阶均差(均差也称为差商)。因为f(xj)=所以f(xj)= fxi, xj可见,均差是微商的离散形式。均差有以下一些基本性质。jijijxixxxxfxf)()(limjxix lim第6章 插值法 性质性质1 k阶均差可表为函数值f(x0), f(x1), f(xk)的线性组合,即fx0, x1, , xk= 其中)()(10ikikixxf).()(, 01jikijjinxxx第6章 插值法 这个性质可对阶数用数学归纳法加以证明。该性质也表明均差与节点的排列次序无关,称为均差的对称性, 即fx0, x1, , xk=fx1, x0, x2, , xk=fx1, , xk, x
26、0性质性质2 由性质1及式(6.18)可得fx0, x1, , xk=011021,xxxxxfxxxfkkk第6章 插值法 性质性质3 若f(x)在a, b上存在n阶导数,且节点x0, x1, , xna, b, 则n阶均差与n阶导数之间有以下关系: fx0, x1, , xn=, (a,b) (6.19)!)()(nfn第6章 插值法 6.3.2 牛顿插值公式牛顿插值公式根据均差定义,把x看成a, b上一点,可得f(x)=f(x0)+fx, x0(x-x0)fx, x0=fx0, x1+fx, x0, x1(x-x1) fx, x0, , xn-1=fx0, x1, , xn+fx, x0
27、, x1, , xn(x-xn)第6章 插值法 只要把后一式代入前一式,就得到f(x)=f(x0)+fx0, x1(x-x0)+fx0, x1, x2(x-x0)(x-x1)+fx0, x1, , xn(x-x0)(x-x1)(x-xn-1)+fx, x0, x1, , xnn+1(x)=Nn(x)+Rn(x)其中Nn(x)=f(x0)+fx0, x1(x-x0)+fx0, x1, x2(x-x0)(x-x1)+fx0, x1, , xn(x-x0)(x-x1)(x-xn-1) (6.20)Rn(x)=f(x)-Nn(x)=fx, x0, x1, , xnn+1(x) (6.21)第6章 插值
28、法 且n+1(x)由式(6.8)定义。由Rn(xi)=0(i=0,1,n)可知,Nn(x)为满足插值条件(6.17)的n次插值多项式。 通常称Nn(x)为n次牛顿插值多项式,Rn(x)为牛顿型插值余项。实际计算时,往往借助于均差表(表6.1)。从表中可以看出,牛顿插值多项式的系数ak就是表中第一条斜线上对应的各阶均差。第6章 插值法 表表6.1 均均 差差 表表 第6章 插值法 另外,根据插值多项式的存在唯一性定理6.1可知Nn(x)Ln(x)因此,当f(x)在a, b上有n+1阶导数时,有Rn(x)=fx, x0, x1, , xnn+1(x)=n+1(x) (6.22)!1()()1(nf
29、n第6章 插值法 所以,对列表函数或高阶导数不存在的函数,其余项可由牛顿型插值余项给出。另外,由式(6.22)可得fx, x0, x1, , xn=,(a,b)从而可得性质3,即fx0, x1, , xn=,(a,b) )!1()()1(nfn)!1()()(nfn第6章 插值法 记Nk(x)为具有节点x0, x1, , xk的牛顿插值多项式,则具有节点x0, x1, ,xk, xk+1的牛顿插值多项式Nk+1(x)可表示为Nk+1(x)=Nk(x)+fx0, x1, , xk+1(x-x0)(x-x1)(x-xk)这说明增加一个新节点xk+1,只需在Nk(x)的基础上增加计算fx0, x1,
30、 , xk+1(x-x0)(x-x1)(x-xk)即可。这种递推性给应用带来了很大的方便。第6章 插值法 例例6.4 设f(x)=,并已知f(2.0)=1.414 214,f(2.1)=1.449 138,f(2.2)=1.483 240. 试用二次牛顿插值公式N2(x)求f(2.15)的近似值,并估计误差。解解 先构造均差表如下:x第6章 插值法 于是由牛顿插值公式,有N2(x)=1.414 214+0.349 24(x-2.0)-0.041 10(x-2.0)(x-2.1)取x=2.15得N2(2.15)=1.466 292。由于f(x)在区间2.0,2.2上充分光滑,因此可以利用误差估计
31、公式(6.12)。 注意到f(x)=, |f(x)|=0.066 29,|3(2.15)|=3.7510-4xx2832 . 20 . 2maxx第6章 插值法 从而得出|R2(x)|=|f(x)-N2(x)|3(x)|=0.4143 10-5 又f(2.15)的真值为1.466 288,可见,利用二次牛顿插值公式得到的结果其精度是比较高的。 ! 33M第6章 插值法 6.4.1 差分的定义及性质差分的定义及性质定义定义6.4 设a=x0 x1xn=b, yi=f(xi)为等距节点xi=x0+ih(i=0, 1, , n)上的函数值,其中h=称为步长,则yi=yi+1-yi (i=0, 1,
32、, n) (6.23)6.4 差分与等距节点插值差分与等距节点插值* nab第6章 插值法 称为f(x)在xi处以h为步长的一阶向前差分。2yi=yi+1-yi=yi+2-2yi+1+yi (i=0, 1, , n) (6.24)称为f(x)在xi处以h为步长的二阶向前差分。一般地,myi=m-1yi+1-m-1yi (i=0, 1, , n)(6.25)第6章 插值法 称为f(x)在xi处以h为步长的m阶向前差分。类似地,可定义f(x)在xi处以h为步长的m阶向后差分为yi= (i=n, n-1, , 1) (6.26) 差分有如下一些性质:性质性质1 各阶差分可表示为函数值的线性组合,即n
33、yi=yn+i-yn+i-1+(-1) kyn+i-k+(-1) nyim111imimyy1nkn第6章 插值法 其中该性质的证明请读者自行完成。性质性质2 两种差分之间的关系性质性质3 差分与均差满足下述关系fx0, x1, , xn= (6.27)!) 1() 1()!( !kknnnknknknmkmkmyynnnnnhnyhny!0第6章 插值法 证明证明 利用归纳法证明前一式如下(后一式由性质2即得):当n=1时,有fx0, x1=,即结论成立。设n=k-1时结论成立,即有fx0, x1, , xk-1=fx1, x2, , xk=hy0101)!1(kkhky111)!1(kkh
34、ky第6章 插值法 则当n=k时,有fx0, x1, , xk=故式(6.27)成立。 kkkkkkkkhkykhhkyyxxxxxfxxxf!)!1( ,010111011021第6章 插值法 性质性质4 差分与导数满足关系ny0=hnf (n)() (x0, xn) (6.28) 证明证明 将式(6.19)与式(6.27)联立,即得f (n)()=(a, b)故式(6.28)成立。nnhy0第6章 插值法 6.4.2 等距节点插值多项式及其余项等距节点插值多项式及其余项对于等距节点xi=x0+ih(i=0, 1, , n),利用式(6.27)在牛顿插值多项式(6.20)中将均差用向前差分来
35、表示,就得到n次牛顿前差插值多项式(简称前插公式)Nn(x)=f(x0)+ (x-x0)+(x-x0)(x-x1)+ (x-x0)(x-x1)(x-xn-1)hy0202! 2 hynnhny!0第6章 插值法 令x=x0+th(0 tn),则x-xi=(t-i)h (i=0, 1, , n)于是牛顿前插公式又可写成Nn(x0+th)=f(x0)+ty0+2y0+ny0(6.29)! 2) 1( tt!) 1() 1(nnttt第6章 插值法 余项公式(6.21)化为Rn(x)=t(t-1)(t-n)f(n+1)() (a, b)(6.30) 类似地,把插值节点按xn, xn-1, , x0的
36、次序排列,用牛顿插值多项式(6.20)得Nn(x)=f(xn)+fxn, xn-1(x-xn)+fxn, xn-1, xn-2(x-xn)(x-xn-1) +fxn, xn-1, , x0(x-xn)(x-xn-1)(x-x1)!1(1nhn第6章 插值法 用式(6.27)将上式中的均差用向后差分来表示,即fxn, xn-1, , xn-k=k=1, 2, , n再令x=xn+th(-nt0),则x-xn-k=(t+k)h。 由此得n次牛顿后差插值多项式(简称后插公式)为 (6.31)knkhky!02212!) 1() 1(! 2) 1( !) 1() 1(! 2) 1()(ynntttyt
37、tytyynntttyttytythxNnnnnnnnnnnn第6章 插值法 其余项Rn(x)=t(t+1)(t+n)f (n+1)() (a, b)(6.32) 计算差分可按差分表(表6.2)进行。)!1(1nhn第6章 插值法 表表6.2 差差 分分 表表 第6章 插值法 显而易见,表6.2中每一个需要计算的差分值分别等于其左侧的数减去左上侧的数之差,且前插公式(6.29)中的各阶差分就是表中下划线的各数,而后插公式(6.31)中的各阶差分就是表中最后一行的相应各数。通常求插值节点开头附近的函数值时使用牛顿前插公式,求插值节点末尾附近的函数值时用牛顿后插公式。 如果用相同节点进行插值,则向
38、前、向后两种公式只是形式上的差别,其计算结果是相同的。如第6章 插值法 例例6.5 以步长h=0.1给出y=f(x)=从x=2.0到2.4的值(精确到10-4),试用3次牛顿前插公式和后插公式求的近似值并估计误差。解解 先作出差分表(表6.3).x15. 2第6章 插值法 表表6.3 例例6.5差分表差分表 第6章 插值法 此处给出5个插值节点,若要计算的值可用牛顿4次前插公式,计算可用4次后插公式。现只需用3次插值公式,所以取x0=2.0,x1=2.1,x2=2.2,x3=2.3。用前插公式(6.29),此时t=1.5,代入得05. 235. 21 . 00 . 215. 20hxx4662
39、. 1 0001. 06)25 . 1 () 15 . 1 (5 . 1 )0008. 0(2) 15 . 1 (5 . 10349. 05 . 14142. 1 )15. 2(15. 23 N第6章 插值法 因为f (4)(x)=-,所以M4=|f (4)(x)|=0.0829故余项|R3(x)|=|t(t-1)(t-2)(t-3)|f (4)()| |t(t-1)(t-2)(t-3)|=0.194210-6xx316153 . 20 . 2maxx281615! 44h! 444Mh第6章 插值法 用后插公式(6.31),此时t=-1.5,代入得 N3(2.15)=1.5166+(-1.5
40、) 0.0334+(-0.0007) + 0.0001=1.466215. 21 . 03 . 215. 23hxx2) 15 . 1()5 . 1(2)25 . 1() 15 . 1()5 . 1(第6章 插值法 6.5.1 完全完全Hermite插值问题插值问题先以在两个点上给定函数值和导数值构造三次插值函数为例,来说明Hermite插值过程。 此时Hermite插值问题是: 设给定x0,x1和相应的函数值y0,y1以及导数值m0,m1,要求构造插值多项式H(x),使之满足以下条件: 6.5 Hermite插值插值 第6章 插值法 (1) H(x)是不超过3次的多项式; (2) H(xi)
41、=yi,H(xi)=mi, i=0,1。 (6.33)仍采用插值基函数的方法,在每个节点上构造两个插值基函数。设点x0对应的插值基函数分别为h0(x)和H0(x),点x1对应的插值基函数分别为h1(x)和H1(x),它们的取值情况如下: 第6章 插值法 因为在点x1, h0(x)除函数值为零外导数值也为零,所以它必有因子(x-x1)2。 另外,h0(x)最多是一个3次多项式,因此可设h0(x)=(a+b(x-x0) 利用h0(x0)=1得a=1。为确定b,对h0(x)求导数,再由h0(x0)=0得b=-,于是得h0(x)= (6.34)2101xxxx102xx 210101021xxxxxx
42、xx第6章 插值法 同理可得h1(x)= (6.35)01010121xxxxxxxx第6章 插值法 下面构造H0(x)。因H0(x)在点x0,x1的函数值为零,在点x1的导数值为零,故H0(x)有因子(x-x1)2(x-x0)。此外,H0(x)是不超过3次的多项式,所以可设H0(x)=a(x-x0) 为确定a,对H0(x)求导数,再利用条件H0(x0)=1推得a=1,所以H0(x)=(x-x0) (6.36)2101xxxx2101xxxx第6章 插值法 同理H1(x)=(x-x1) (6.37)这4个函数的图形见图6.4。 2010 xxxx利用这4个插值基函数可直接写出Hermite插值
43、多项式H(x)=y0h0(x)+y1h1(x)+m0H0(x)+m1H1(x)(6.38)容易验证H(x)满足插值条件式(6.33)。第6章 插值法 图 6.4 Hermite插值基函数第6章 插值法 定理定理6.3 设H(x)是过点x0,x1的Hermite插值多项式,f(x)C3a, b, 且f (4)(x)在a,b内存在,其中a, b是包含x0, x1的任一区间,则对任意给定的xa,b,总存在一点(依赖于x)使R(x)=f(x)-H(x)= (x-x0)2(x-x1) 2 ab (6.39)! 4)()4(f第6章 插值法 证明证明 对任一固定点x(x0, x1)引进辅助函数(t)=f(
44、t)-H(t)-(t-x0)2(t-x1)2显然(t)具有4阶连续导数,并且有x0,x1和x三个零点,其中x0,x1是二重零点。 根据罗尔定理(t)在x0,x1和x构成的两个子区间上至少各有一个零点,设为0,1,这样(t)共有四个零点,它们是x0,0,1,x1。 反复利用罗尔定理可推出(4)(t)在a, b内至少有一个零点,设为,对(t)求4阶导数,并注意到H(t)是一个3次多项式,所以 (4)(t)=f(4)(t)-4!2120)()()(xxxxxR2120)()()(xxxxxR第6章 插值法 把代入,再利用(4)()=0,即可求出Hermite插值的余项为R(x)= (x-x0)2(x
45、-x1)2 ab 一般地,若给定n+1个节点和相应的函数值及导数值如下:! 4)()4(f第6章 插值法 则可以构造满足以下条件的2n+1次Hermite插值多项式H(x):(1) H(x)是不超过2n+1次的多项式; (2) H(xi)=yi,H(xi)=mi,i=0,1,n。(6.40)首先在这n+1个点上构造2n+2个插值基函数hi(x)=Hi(x)=(x)(x-xi) i=0, 1, , n)()()()(1211xlxxxxiiinin 2il第6章 插值法 其中,n+1(x)见式(6.8), li(x)为拉格朗日插值基函数。如此便得2n+1次的Hermite插值多项式H(x)= (
46、yihi(x)+miHi(x) (6.41)ni 0第6章 插值法 下面证明,满足条件式(6.40)的Hermite插值多项式(6.41)是唯一存在的。 假设另有一个次数不高于2n+1的多项式P2n+1(x)满足条件式(6.40),(x)=H2n+1(x)-P2n+1(x)是次数不高于2n+1的多项式,且以节点xi(i=0, 1, 2, , n)为二重零点,即(x)至少有2n+2个零点, 从而必有(x)0,即H2n+1(x)P2n+1(x)。仿照拉格朗日插值余项的讨论方法,可以得出Hermite插值多项式的余项。第6章 插值法 定理定理6.4 设H(x)是过点x0,x1,xn的2n+1次Her
47、mite插值多项式, f(x)C2n+1a, b,且f (2n+2)(x)在a, b存在,其中a, b是包含x0,x1,xn的任一区间,则对任意给定的xa, b,总存在一点(依赖于x)使R(x)=f(x)-H(x)=(x) ab (6.42)21)22()!22()(nnnf第6章 插值法 例例6.6 设f(x)=lnx,给定f(1)=0,f(2)=0.693 147,f(1)=1,f(2)=0.5。试用3次Hermite插值多项式H3(x)计算f(1.5)的近似值。解解 令x0=1,x1=2,则由式(6.34)式(6.37)直接得 h0(x)=(2x-1)(2-x)2 h1(x)=(5-2x
48、)(x-1)2H0(x)=(x-1)(2-x)2 H1(x)=(x-2)(x-1)2第6章 插值法 再用公式(6.38)得3次插值多项式H3(x)=0.693 147(5-2x)(x-1)2+(x-1)(2-x)2+ (x-2)(x-1) 2由此得f(1.5)H3(1.5)=0.409 074。21第6章 插值法 6.5.2 不完全不完全Hermite插值问题插值问题在带导数的插值问题中,有时插值条件中的导数值个数少于函数值个数。这时可以牛顿插值多项式或完全Hermite插值为基础,运用待定系数法求出满足插值条件的多项式。这里我们通过举例来说明这种方法的基本思路。第6章 插值法 例例6.7 求
49、满足条件P(xi)=f(xi)(i=0, 1, 2)及P(x1)=f(x1)的插值多项式及其余项表达式。解解 由给定条件,可确定次数不超过3的插值多项式P(x)。由于P(x)通过点(xi, f(xi)(i=0,1,2),故其形式为P(x)=f(x0)+fx0, x1(x-x0)+fx0, x1, x2(x-x0)(x-x1)+A(x-x0)(x-x1)(x-x2)第6章 插值法 其中A为待定常数,可由条件P(x1)=f(x1)确定,计算得A= 为了求出余项R(x)=f(x)-P(x)的表达式,可设R(x)=f(x)-P(x)=k(x)(x-x0)(x-x1)2(x-x2)(,)(,)(2101
50、21001101xxxxxxxfxxxxfxf第6章 插值法 其中k(x)为待定函数。构造(t)=f(t)-P(t)-k(x)(t-x0)(t-x1)2(t-x2)显然(xi)=0(i=0, 1, 2), 且(x1)=0,(x)=0,故(t)在(a,b)内有5个零点(二重根算两个)。反复应用罗尔定理, 得 (4)(t)在(a, b)内至少存在一个零点,使(4)()=f (4)()-4!k(x)=0第6章 插值法 于是 k(x)= f(4)()余项表达式为 R(x)=f(x)-P(x)= f(4)()(x-x0)(x-x1)2(x-x2) (6.43)其中位于x0, x1, x2和x所界定的范围