第5章 插值法 下载本文

第 五 章 代数插值

在生产实践和科学研究所遇到的大量函数中,相当一部分是通过测量或实验得到的。虽然其 函数关系y=f(x)在某个区间[a,b]上是客观存在的,但是却不知道具体的解析表达式,只能通过观察、测量或实验得到函数在区间[a,b]上一些离散点上的函数值、导数值等, 因此,希望对这样的函数用一个比较简单的函数表达式来近似地给出整体上的描述。还有些函数,虽然有明确的解析表达式,但却过于复杂而不便于进行理论分析和数值计算,同样希 望构造一个既能反映函数的特性又便于计算的简单函数,近似代替原来的函数。插值法就是寻求近似函数的方法之一。

在用插值法寻求近似函数的过程中,根据所讨论问题的特点,对简单函数的类型可有不同的 选取,如多项式、有理式、三角函数等,其中多项式结构简单,并有良好的性质,便于数值计算和理论分析,因此被广泛采用。本章主要介绍多项式插值、分段多项式插值和样条插值 。

第一节 插值多项式的存在唯一性

5.1.1 插值问题

设函数y=f(x)在区间[a,b]上有定义,y0,y1,...yn且已知函数在区间[a,b]上n+1个互异点x0,x1,...xn上的函数值,若存在一个简单函数y=p(x ),使其经过y=f(x)上的 这n+1个已知点(x0,y0),(x1,y1),?,(xn,yn)(图5-1),即

p(xi)= yi, i=0,1,?,n

那么,函数p(x)称为插值函数,点x0,x1,...xn称为插节点, 点

(x0,y0),(x1,y1),?,(xn,yn)称为插值点,包含插值节点的区间[a,b]称为插值区间,求p (x)的方法称为插值法,f(x)称为被插函数。若p(x)是次数不超过n的多项式,用Pn(x)表示,即

2np(x)?a?ax?ax?...?axn012n 则称pn(x)为n次插值多项式,相应的插值法称为多项式插值;若P(x)为分段多

项式,称为分段插值,多项式插值和分段插值称为代数插值。

5-1

5.1.2 5.1.2 插值多项式的存在唯一性 

定理 设节点x0,x1,...xn互异,则在次数不超过n的多项式集合Hn中,满足条件(5.1.1)的插值多项式pn(x)存在且唯一。

2np(x)?a?ax?ax?...?ax012n证 将n代入式(1)得

n?a0?a1x0?...?anx0?y0?n?a0?a1x1?...?anx1?y1?......?n??a0?a1xn?...?anxn?yn

这是关于a0,a1,...an的n+1元线性方程组,其系数行列式

1x01x1??n?x0?x1n?n?xn

V(x0,x1,...xn)=1xn是范得蒙(Vandermonde)行列式,故

 V(x0,x1,...xn)=i?1j?0

由于x0,x1,...xn互异,所有因子xi?xj≠0(i≠j),于是

V(x0,x1,...xn)≠0

再由克莱姆法则,方程组(2)存在唯一的一组解a0,a1,...an,即满足条件(1) 的插值多项式pn(x)存在且唯一。

??(xni?1i?xj)第二节 拉格朗日插值多项式

5.2.1 基函数

由上一节的证明可以看到,要求插值多项式pn(x),可以通过求方程组

(5.1.22)的解a0,a1,...an得到,但这样不但计算复杂,且难于得到pn(x)的简单表达式。

考虑简单的插值问题:设函数在区间[a,b]上n+1个互异节点x0,x1,...xn上的函数值为

?1,yj??ij???0,

j?ij?i, j=0,1,?,n

求插值多项式li(x),满足条件 li(x)??ij j=0,1,?n, i=0,1,?,n

由上式知,x0,x1,...,xi?1,xi?1,...,xn是li(x)的根,且li(x)∈Hn,可令 li(x)?Ai(x?x0)(x?x1)...(x?xi?1)(x?xi?1)...(x?xn) 再由li(xi)?1得

Ai?于是

(x?x0)(x?x1)...(x?xi?1)(x?xi?1)...(x?xn)(xi?x0)(xi?x1)...(xi?xi?1)(xi?xi?1)...(xi?xn)

n+1个n次多项式l0(x),l1(x),...,ln(x)称为以为x0,x1,...xn节点的n次插值基函数。

li(x)?1(xi?x0)(xi?x1)...(xi?xi?1)(xi?xi?1)...(xi?xn)

n=1时的一次基函数为(图5-2):

x?x0x?x1l0(x)?,l1(x)?x0?x1 x1?x0 .

n=2时的二次基函数为(图5-3):

(x?x1)(x?x2)l0(x)?(x0?x1)(x0?x2)(x?x0)(x?x2)l1(x)?(x1?x0)(x1?x2)(x?x0)(x?x1)l2(x)?(x2?x0)(x2?x1)

5-2

5-3

5.2.2 拉格朗日插值多项式

现在考虑一般的插值问题:设函数在区间[a,b]上n+1个互异节点x0,x1,...xn上的函数值分别为,y0,y1,...yn,求n次插值多项式pn(x),满足条件 令

pn(xj)?yj,

j=0,1,?n

(5.2.3)

其中l0(x),l1(x),...,ln(x)为以x0,x1,...xn为节点的n次插值基函数,则Ln(x)是一次

i?0Ln(x)?y0l0(x)?y1l1(x)?...?ynln(x)??yili(x)n数不超过n的多项式,且满足

Ln(xj)?yj, j=0,1,?,n

再由插值多项式的唯一性,得

pn(x)?Ln(x)

式(5.2.3)表示的插值多项式称为拉格朗日(Lagrange)插值多项式。特别地,n=1 时称为线性插值(图5-4(a)),n=2时称为抛物插值或二次插值(图5-4(b))。

值得注意的是,插值基函数l0(x),l1(x),...,ln(x)仅由插值节点x0,x1,...xn确定,与被插函数f(x)无关。因此,若以 x0,x1,...xn为插值节点对函数f(x)≡1作 插值多项式,则由式(5.2.3)立即得到基函数的一个性质

≡1

还应注意,对于插值节点x0,x1,...xn,只要求它们互异,与大小次序无关。

i?0?l(x)in

5-4

例1 已知y=x,x0=4,x1=9,用线性插值求7的近似值。 解 y0=2,y1=3,基函数分别为

x?41x?41??(x?9),l1(x)??(x?4)4?959?45

插值多项式为

?11L1(x)?y0l0(x)?y1l1(x)?2?(x?9)?3?(x?4)551?(x?6) 5 所以

137?L1(7)??2.65

例2 求过点(-1,-2),(1,0),(3,-6),(4,3)的三次插值多项式。  解 以x0=-1,x1=1,x2=3,x3=4为节点的基函数分别为

l0(x)?(x?1)()x?3)(x?4)1?(x?1)(x?3)(x?4)(?1?1)(?1?3)(?1?4)40(x?1)(x?3)(x?4)1l1(x)??(x?1)(x?3)(x?4)(1?1)(1?3)(1?4)12(x?1)(x?1)(x?4)1l2(x)???(x?1)(x?1)(x?4)(3?1)(3?1)(3?4)8(x?1)(x?1)(x?3)1l3(x)??(x?1)(x?1)(x?3)(4?1)(4?1)(4?3)15

 插值多项式为

l0(x)?L3(x)??yili(x)i?13?11(x?1)(x?3)(x?4)?0?(x?1)(x?3)(x?4)4012?11?(?6)?(x?1)(x?1)(x?4)?3?(x?1)(x?1)(x?3)81532 ?x?4x?3 5.2.3 插值余项

插值多项式的余项Rn(x)=f(x)-Ln(x),也就是插值的截断误差或方法误差。

?(?2)?关于余项有 如下的余项定理:

(n?1)f(x)在开定理 设被插函数f(x)在闭区间[a,b]上n阶导数连续,

区间(a,b)内存在,x0,x1,...xn是[a,b]上n+1个互异节点,记

?n?1(x)??(x?xi)?(x?x0)(x?x1)...(x?xn)i?0n

则插值多项式Ln(x)的余项为

f(n?1)(?)Rn(x)?f(x)?Ln(x)??n?1(x),?x?[a,b](n?1)!其中???(x)?(a,b). (5.2.4)

证明 由插值条件和?n?1(x)的定义,当x=xk时式(5.2.4)显然成立, 并且有

Rn(xk)?0 k=0,1,?,n (5.2.5)  这表明x0,x1,...xn都是函数Rn(x)的零点,从而Rn(x)可表示为 Rn(x)=f(x)- Ln(x)=K(x) ?n?1(x) (5.2.6) 其中K(x)是待定函数。

对于任意固定的x?[a,b],x≠ xk (k=0,1,?,n),构造自变量t的辅助函数

?(t)?f(t)?Ln(t)?K(x)?n?1(t) (5.2.7) 由式(5.2.5)和式(5.2.6)可知x0,x1,...xn和x是?(t)在区间[a,b]上的n+2

个互异 零点,因此,根据罗尔(Rolle)定理,至少存在一点???(x)∈(a,b),使得

?(n?1)(?)?0 于是,由式(5.2.7)得到

f(n?1)(?)K(x)?(n?1)!

代入式(5.2.6)即得式(5.2.4)。

由于???(x)一般无法确定,因此式(5.2.4)只能用作余项估计。如果

f(n?1)(x)在区 间(a,b)上有界,即存在常数Mn?1>0,使得

(n?1)f(x)|? Mn?1 ?x∈(a,b) |

则有余项估计

Mn?1|Rn(x)|?|?n?1(x)|(n?1)! (5.2.8)

(n?1)(x)在闭区间[a,b]上连续时,可取x?[a,b]当f。 推论 设节点x0<x1, f″(x)在闭区间[x0,x1]上连续,记

Mn?1?max|f(n?1)(x)||f″(x)|,则过点(x0,f(x0)),(x1,f(x1))的线性插 值余项为f''(x)R1(x)?(x?x0)(x?x1),???(x)?(x0,x1)2 (5.2.9)

x?(a,b)M2?max(x1?x0)(x1?x0)242由于在[x0, x1]上,|(x-x0)(x-x1)|在x=达到 最大值,

可得余项的一个上界估计:?x∈[x0,x1]有

|R1(x)|?M2(x1?x0)2831?21在本节例1中f''(x)??x,max|f\(x)|?,由上式432x?[4,9]11|R1(7)|?|7?L1(7)|?..(9?4)2?0.097656258321例三设f(x)?,节点x0?2,x1?2.5,x3?4,求f(x)的抛物插值多项式L2(x),x

且计算f(3)的近似值并估计误差。

解 由于y0?f(2)?0.5,y1?f(2.5)?0.4,y2?f(4)?0.25,插值多项式为

L2(x)?0.5?(x?2.5)(x?4)(x?2)(x?4)(x?2)(x?2.5)?0.4??0.25?(2?2.5)(2?4)(2.5?2)(2.5?4)(4?2.5)(4?2)?0.05x2?0.425x?1.15

于是

f(3)≈L2(x)=0325

因为

f\(x)??

代入式(5.2.8)得

|R2(3)|?|f(3)?L2(3)|63,|f'''(x)|?|f'''(2)|?8 x4maxx?[2,4]例4

字。

(1)用线性插值求sin0.33的近似值;

(2)证明在区间[0.32,0.34]上用线性插值计算sinx时至少有4位有效数字。

解 (1)用线性插值

0.33?0.340.33?0.32sin0.33?L1(0.33)?0.314567??0.333487?0.32?0.340.34?0.321(0.314567?0.333487)?0.3240272 (2)由式(5.2.10)在区间[0.32,0.34]用线性插值计算sinx时的余项满足

0.333487|R1(x)|?(0.34?0.32)2?0.5?10?4,?x?[0.32,0.34]8

因此结果至少有4位有效数字。

13?.|(3?2)(3?2.5)(3?4)|?0.0312568

已知sin0.32=0.314567,sin0.34=0.333487有六位有效数

第三节 牛顿插值多项式

拉格朗日插值的优点是插值多项式特别容易建立,缺点是增加节点时原有多项式不能利 用,必须重新建立,即所有基函数都要重新计算,这就造成计算量的浪费;牛顿(Newton )插值多项式是代数插值的另一种表现形式,当增加节点时它具有所谓的“承袭性”,这 要用到差商的概念。 5.3.1 差商的定义与性质

(x,y)定义 已知函数f(x)的n+1个插值点为ij,yi=f(xi),i=0,1, ?,n,

f(xi)?f(xj)xi?xj称为f(x)在点

(xi,yj)的一阶差商,记为f[f(xi)?f(xj)xi,yj],即

x,yxi?xjf[ij]=f[xi?xj]?f[xj,xk] (5.3.1)

xi,xj,xkxi?xk一阶差商的差商

x,x,xf[ijk],即

称为f(x) 在点的二阶差商,记为

f[xi?xj]?f[xj,xk]xi?xkf[xi,xj,xk]=(5.2.2)

f[x0,x1,...,xk?1]?f[x1,x2,...xk]x0?xk一般地,k-1阶差商的差商称为f(x)在点x0,x1,...,xk的k阶差商,记为f[x0,x1,...,xk],即

f[x0,x1,...,xk?1]?f[x1,x2,...xk]x0?xkf[x0,x1,...,xk]= (5.3.3)

差商具有以下性质:

性质1 n阶差商可以表示成n+1个函数值f(x0),f(x1),...,f(xn)的线 性组

合,即

f(xi)?x,x,...,xk]=i?0(xi?x0)...(xi?xi?1)(xi?xi?1)...(xi?xn) f[01n事实上,由式(1)当n=1时,

f(x0)?f(x1)f(x0)f(x1)f[x0,x1]???x0?x1x0?x1x1?x0

当n=2时,

f[x0,x1]?f[x1,x2]f[x0,x1]f[x1,x2]f[x0,x1,x2]???x1?x2x0?x1x2?x0???f(x0)f(x1)f(x1)f(x2)11(?)?(?)x0?x2x0?x1x1?x0x2?x0x1?x2x2?x1f(x0)f(x1)f(x2)11?(?)?(x0?x1)(x0?x2)x0?x2x1?x0x1?x2(x2?x0)(x2?x1)f(x0)f(x1)f(x2)??(x0?x1)(x0?x2)(x1?x0)(x1?x2)(x2?x0)(x2?x1)

一般地有

性质2(对称性) 差商与节点的顺序无关,如

f[x0,x1]?f[x1,x0]f(xi)?x,x,...,x01kf[]=i?0(xi?x0)...(xi?xi?1)(xi?xi?1)...(xi?xn)

nf[x0,x1,x2]?f[x1,x0,x2]?f[x0,x2,x1]

这一点可以从性质1看出。

性质3 若f(x)是x的n次多项式,则一阶差商f[x,x0]是x的n-1次多项式,

二阶差商f[x,x0,x1]是x的n-2次多项式;一般地,函数f(x)的k阶差商

x,x0,...,xk?1f[]是x的n-k次多项式(k?n),而k>n时,k阶差商为零。 利用差商的递推定义,可以用递推来计算差商,如下表。

xi x0 f(xi) f(x0) 一阶差商 二阶差商 三阶差商 ? x1 f(x1) f(x2) f(x3) 1f?x0,x1? x2 x3 24f?x1,x2? 3f?x2,x31? 5f?x0,x1,x2? f?x1,x2,x3? 6f?x0,x1,x2,x3? ? ? ? ? ? ? 注:①、②、?表示计算顺序。

例1 例1 已知 x 1 2 F(x) 0 2 计算三阶差商f[1,3,4,7]。

解 作差商表 一阶差商 1 0 3 2 1 4 15 13 7 12 -1 所以

f[1,3,4,7]=-1.25

5.3.2 牛顿插值多项式

3 15 4 12 二阶差商 4 -3.5 三阶差商 -1.25 f[x,x0]?f(x)?f(x0)得x?x0设x是[a,b]上任一点,则由f(x)的一阶差商定义式

f(x)?f(x0)?f[x,x0](x?x)

f[x,x0]?f[x,x1]f[x,x0,x1]?x?x1同理由f(x)的二阶差商定义式得

f[x,x0]?f[x0,x1]?f[x,x0,x1](x?x1)

一般地,由f(x)的n+1阶差商定义式

f[x0,x1,...,xn?1]?f[x1,x2,...xn]x0?xnf[x0,x1,...,xn]= 有

f[x,x0,x1,...,xn?1]?f[x0,x1,...,xn]?f[x,x0,x1,...,xn](x?xn)

即得到一系列等式

f(x)?f(x0)?f[x,x0](x?x)

f[x,x0]?f[x0,x1]?f[x,x0,x1](x?x1) f[x,x0,x1]?f[x0,x1,x2]?f[x;x0;x1,x2](x?x2)

f[x,x0,x1,...,xn?1]?f[x0,x1,...,xn]?f[x,x0,x1,...,xn](x?xn) 依次将后式代入前式,最后得:

f(x)?f(x0)?f[x0,x1](x?x0)?f[x0,x1,x2](x?x0)(x?x1)?...?f[x0,x1,...,xn](x?x0),...,(x?xn?1)?f[x,x0,x1,...,xn](x?x0)(x?x1)...(x?xn)上式可以写为

f(xNn(x)+Rn(x)

其中:

Nn(x)?f(x0)?f[x0,x1](x?x0)?f[x0,x1,x2](x?x0)(x?x1)?...?f[x0,x1,...,xn](x?x0),...,(x?xn?1) Rn(x)?f[x,x0,x1,...,xn](x?x0)(x?x1)...(x?xn) (53.4)

可以看出,Nn(x)是关于x的次数不超过n的多项式,并且当x=xi时,有

Rn(xi)=0 (i=0,1,?,n)

因而有

Nn(xi)=f(xi), (i=0,1,?,n)

亦即Nn(x)满足插值条件,称为牛顿(Newton)插值多项式,再由插值多项式的唯一性可知,Ln(x)≡Nn(x),因而两个多项式对应的余项是相等的,即

f(n?1)(?)f[x,x0,x1,...,xn]?n?1(x)??n?1(x)(n?1)!

由此得到差商与导数的关系

性质4 若f(x)在[a,b]上存在n阶导数,且xi?[a,b](i=0,1,?,n),

则

f(n)(?)f[x0,x1,...,xn]?,??[a,b]n! (5.3.6)

例2

9729210?6x?8x?4x?5,求f[1,2,2,...,2]和f[1,2,2,,...,2] 已知f(x)=

(9)(10)f(x)??6.9!,f(x)?0,所以由式(5.3.6)得 解 因

f[1,2,22,...,29]??6,f[1,2,22,...,210]?0

对于牛顿插值,如果增加一个插值节点,则由式(5.3.4)可得如下递推公式 Nn?1(x)?Nn(x)?f[x0,x1,...,xn?1](x?x0)(x?x1)...(x?xn) 这只要在多计算一行差商的基础上增加一项即可。 当n=1时,

y0?y1(x?x0)x0?x

这就是牛顿一次插值多项式,也就是点斜式直线方程。 例2 例2 已知 N1(x)?f(x0)?f[x0,x1](x?x0)?y0? xi f(xi) 1 0 3 2 4 15 7 12 求满足以上插值条件的牛顿型插值多项式。

解 在例1中,我们已计算出

f(x0)?0,f[x0,x1]?1,f[x0,x1,x2]?4,f[x0,x1,x2,x3]??1.25

则牛顿三次插值多项式为

N3(x)?0?(x?1)?4(x?1)(x?3)?1.25(x?1)(x?3)(x?4)

??1.25x3?14x2?38.75x?26 例 4 已知f (x)在六个点的函数值如下表,运用牛顿型插值多项式求f(0.596)的近似值,精确到7位小数 。 表5-2 xi 0.40 0.41075 0.55 0.57815 0.65 0.69675 0.80 0.88811 0.90 1.02652 1.05 1.25386 f(xi) 解 列表5-3如下 表5-3 一阶差二阶差三阶差四阶差五阶差x xi if() 商 商 商 商 商 0.40 0.41075 0.196 0.55 0.57815 1.1160 0.046 0.65 0.69675 1.1860 0.2800 -0.054 0.80 0.88811 1.2757 0.3588 0.1970 -0.204 0.90 1.02652 1.3841 0.4336 0.2137 0.0344 -0.304 1.05 1.25386 1.5156 0.5260 0.2310 0.0346 0.0003 于是

N2(x)?f(x0)?f[x0,x1](x?x0)?f[x0,x1,x2](x?x0)(x?x1)N2(0.596)?0.41075?1.1160?0.196?0.28?0.196?0.046?0.632010N3(x)?N2(x)?f[x0,x1,x2,x3](x?x0)(x?x1)(x?x2)N3(0.596)?0.632010?0.1970?0.196?0.046?(?0.054)?0.6319145

欲求N4(x),只需在N3(x)之后再加一项 f[x0,x1,x2,x3,x4](x?x0)(x?x1)(x?x2)(x?x3)?0.0344?0.196?0.046?(?0.054)?(?0.204)?3.4?10?6N4(0.596)?0.6319145?0.0000034?0.6319179而f[x0,...,x5](x?x0)(x?x1)(x?x2)(x?x3)(x?x4)?0.0003?0.196?0.046?(?0.054)?(?0.204)?(?0.304)??9.05?10?9 保留7位小数计算

N5(0.596)?N4(0.596)?0.6319179

即用4次插值多项式即可。

5.3.3 等距节点的牛顿插值公式

1.差分的定义

设插值节点为等距节点:xi=x0+ih(i=0,1,2,?,n),其中h称为步长,函数y=f(x) 在xi的函数值为fi=f(xi)(i=0,1,2,?,n),fi?1?fi,fi?fi?1分 别称为f(x)在xi的一阶向前差分和一阶向后差分,记作

△fi=fi?1?fi,,▽fi=fi?fi?1(5.3.7)

其中,△称为向前差分算子,▽称为向后差分算子。一阶差分的差分?fi?1??fi,?fi??fi?1分别称为f(x)在xi二阶向前差分和二阶向差分差分,记作

22?f??f??f,?fi??fi??fi?1 ii?1i

m?1m?1m?1m?1?f??f,?f??fi?1分别称为f(x)在iii一般地,m-1阶差分的差分

xi的m阶向前差分和m阶向后差分,记作

mm?1m?1mm?1m?1?f??f??f,?f??f??fi?1 (9) iiiii

由差分的定义知,差分计算比差商计算方便得多,因为它省去了除法运算,计算

差分通常用 表5-2所示的差分表。 表5-4 fi f0 一阶差分 ?f0(?f1) 二阶差分 ?2f0(?2f2) 三阶差分 四阶差分 ? ? ? ? ? f1 f2 f3 ?f1(?f2) ?f2(?f3) ?f3(?f4) ?2f1(?2f3) ?3f0(?3f3) ?2f2(?2f4) ?3f1(?3f4) ?4f0(?4f4) f4 ? ? ? ? ? ? ?

2.差分的性质

性质 1 n阶差分是n+1个函数值的线性组合,

jjnn?mfi?fln?i?c1f?...?(?1)cf?...?(?1)cnfinn?i?1nn?i?j??(?1)jcnjfn?i?j(5.3.10)j?0jjnn?mfi?fi?c1nfi?1?...?(?1)cnfi?j?...?(?1)cnfi?nnj?0 (5.3.11)

一般地,可用数学归纳法证明此性质。

性质 2 在等距节点的情况下,差分和差商及导数有如下关系:

?mfi?m!hmf[xi,xi?1,...,xi?m]?hmfm(?)(5.3.12)mmmm ?fi?m!hf[xi,xi?1,...,xi?m]?hf(?)(5.3.13) 3. 等距节点的牛顿插值公式

设等距节点xi=x0+ih,记fi=f(xi) (i=0,1,?,n)。当x∈[x0,;xn]时,令

??(?1)jcnjfi?j;nx=x0+th(0?t?n),如当x为x2,x3的中点时,x=x0+2.5h。将牛顿插值公式中的差商用 差分(性质2的公式12)代替,因

x- xi=(x0+th)-(x0+ih)=(t-i)h 从而,牛顿插值公式在等距插值节点下的形式为:

11Nn(x0?th)?f0?t?f?t(t?1)?2f0?...?t(t?1)...(t?n?1)?nf02!n!

(5.3.14)

称为牛顿前插公式。此时

?n?1(x0?th)?t(t?1)...(t?n)hn?1 余项为

Rn(x0?th)?t(t?1)...(t?n)n?1(n?1)hf(?),??[x0,xn](n?1)!

类(5.3.15)似在有牛顿后插公式(-n?t?0):

11Nn(x0?th)?f0?t?f?t(t?1)?2f0?...?t(t?1)...(t?n?1)?nf02!n! (5.3.16

余项为

t(t?1)...(t?n)n?1(n?1)Rn(x0?th)?hf(?),??[x0,xn](n?1)! (5.3.17) 一般来说,如果要计算x0附近的f(x),用牛顿前插公式;如果要计算;xn附近的

f(x),用 牛顿后插公式。

例5 设y=f(x)=e,插值节点为x=1,1.5,2,2.5,3,用三次插值多项式求f(1.2)和f(2.8)的近似值。

解 相应的函数值及差分如下表 fi x一阶差分 二阶差分 三阶差分 四阶差分 2.71282 4.48169 7.28906 12.18249 20.08554 1.76341 2.80737 4.79343 7.90305 1.14396 1.88606 3.10962 0.74210 1.22356 0.48146 求f(1.2)用牛顿前插公式,此时x0=1,x=1.2=1+0.4h,故t=0.4,于是 N3(1.2)?2.71828+0.4×1.76341+1/2×0.4×(0.4-1) ×1.14396+

1/6×0.4×(0.4-1)(0.4-2) ×0.74210=3.3338362

求f(2.8)用牛顿后插公式,此时;xn=3,x=2.8=3-0.4h,故t=-0.4,于是 N3(2.8)?20.08554+(-0.4.) ×7.90305+1/2×(-0.4) ×(-0.4+1) ×3.10962+1/6×(-0.4) ×(-0.4+1) (-0.4+2) ×1.22356=15.7680872 第四节 埃尔米特插值 5.4.1 问题的提出

面讨论的拉格朗日和牛顿插值多项式的插值条件只要求在插值节点上,插 值函数与被插值函数的函数值相等,即Ln(xi)=f(xi)和Nn(xi)=f(xi),有时 不 仅要插值函数的函数值相等,还要插值多项式的导数在这些 点上被插函数的导数值相等,即要求满足插值条件:

H2n?1(xi)?f(xi),H'2n?1(xi)?f'(xi),i?0,1,...,n (5.4.1)

的次数不超过 2n+1的插值多项式H2n?1,这就是埃尔米特(Hermite)插值问题。 5.4.2

5.4.2 三次埃尔米特插值

我们考虑只有两个节点的三次埃尔米特插值。设插值点为(x0,y0),(x1,y1),要求一次数不超过3的多项式H3(x),满足下列条件: H3(xi)?yi,H'3(xi)?mi i=0,1

式中mi=f′(xi),i=01。

(5.4.2)

类似于拉格朗日插值多项式的构造过程,仍采用基函数的方法来构造H3(x), 将H3(x)表为:

H3(x) =y0a0(x)+y1a1(x)+m0?0(x)+m1?1(x) (5.4.3)

式中a0(x),a1(x),?0(x),?1(x)值基函数,为了满 足插值条件,它们应满足下列条件

表5-6 条件 函数值 导数值

函数 a0(x) x0 x1 0 1 x0 x1 0 0 0 1

1 0 0 0 0 0 1 0 a1(x) ?0(x) ?1(x) 0 且a0(x)a1(x)?0(x)?1(x)均为次数不超过 3的多项式。

2a(x)?a'(x)?0a(x)(x?x)010101由表5-6可知,,故应含有因子,又a0(x)是次数不超过3的多项式,因而可将它写成

2a(x)x(x?x)001 =[a+b(x-)] (5.4.4) 式中a,b为待定常数。 由a0(x)=1,可得

再由a'0(x0)=0,可得

12(x?x)01a=

33(x?x)01 b=

将a,b代入式(5.4.4)式得

x?x0x?x121?2()a0(x)=(x1?x0)x0?x1

类似地, 将x0<->x1,们可得到插值基函数为a1(x)为

x?x02x?x11?2()x0?x1)x1?x0 a1(x) =(

2?(x)??(x)??'(x)?0?(x)x(x?x)000101001对于,注意到,含有(x-)因子,可

?0(x)表示为

?0(x)=c (x-x0)(x?x1)2 (5.4.5)

式中c为待定常数。

由?'0(x0)=1,可得

12(x?x)01c=

代入式(5)得

x?x12)?0(x)=(x-x0)x0?x1

(类似地,将x0<->x1,我们可得到插值基函数?1(x)为

x?x02() ?1(x)=(x-x1)x1?x0 显然a0(x)a1(x)?0(x)?1(x)可简单地表示为

a0(x)?[1?2l1(x)]l02(x)a1(x)?[1?2l0(x)]l12(x)?0(x)?(x?x0)l02(x) (5.4.6)

其中l0(x),l1(x)为以为 (x0,y0),(x1,y1) 插值点的拉格朗日一次基 函数。将a0(x)a1(x)?0(x)?1(x)的表达式代入式H3(x)(3)得的表达 式为

?1(x)?(x?x1)l12(x)

H3(x)=y0(

1?2

x?x0x?x02x?x12x?x1()1?2()x1?x0)x0?x1+y1(x0?x1)x1?x0+

x?x02x?x12()()m0 (x-x0)x0?x1+m1(x-x1)x1?x0

同Lagrange插值类似,有如下结论:

定理1 满足条件式(2)的三次埃尔米特插值多项式存在且唯一。 证 存在性已由上述构造过程得到证明。下证唯一性。

设H3(x),P3(x)均为满足式(5.4.2)的三次埃尔米特插多项式,令 Q(x)=H3(x)-P3(x)

则Q(x)仍为一次数不超过3的多项式,且 〖JZ〗Q(x0)=Q′(x0)=Q(x1)=Q′(x1)=0

即x0,x1都是Q(x)=0的二重根,因此Q(x)=0有四个根,这只有当Q(x)≡0时才能成立,所 以

P3(x)≡H3(x) 亦即满足条件式(2)的三次埃尔米特插值多项式是唯一的。 5.4.3 插值余项

与第二节定理1的证明完全类似,可以证明

定理2 当f(x)的四阶导数在(x0,x1)上存在时,三次埃尔米特插值余 项为

R3(x)?f(x)?H3(x)f(4)(?)?(x?x0)2(x?x1)2???(x)∈(x0,x1) (5.4.8) 4!M4?max|f4(x)|x0?x?x1记则当x∈(x0,x1),有如下余项估计式

M|R3(x)|?|f(x)?H3(x)|?4(x?x0)2(x?x1)224M?4(x1?x0)4384

例1 已知f(x)=x, x0=121,x1=144,用f(x)的三次埃尔米特 插值多项式H3(x)求125的近似值,并估计其截断误差。

1解 由f(x)=x,得f′(x)=2x, y0 =11, y1 =12, m0=1/22,m1=1/24,

x?144144?xx?121x?121l0(x)??,l1(x)??121?14423144?12123

代入式(5.4.6)得

2x?219144?x2a0(x)?[1?2l1(x)]l02(x)?()()2323265?2xx?1212a1(x)?[1?2l0(x)]l12(x)?()()2323144?x2?0(x)?(x?x0)l02(x)?(x?121)()23x?1212?1(x)?(x?x1)l12(x)?(x?144)()23

再将上式代入式(3)得

2x?219144?x2265?2xx?121211?()()?12?()()?23232323144?x2x?12121/22?(x?121)()?1/24(x?144)()H(x)32323 = ?15f4(x)?157M?16x2,故416?1212?11,于是 又

115R3(125)??42.192?32416.121.110.000012

第五节 第五节 分段低次插值

 随着插值节点增加,插值多项式的次数也相应增加,而对于高次插值容易带来剧烈振荡,带来数值不稳定,如图5-5。

既要增加插值节点,减小插值区间,又不增加插值多项式的次数以减少误差,我们可 以采用分段插值的办法。设给定节点a=x0?x1?...?xn=b,记

hi?xi?1?xi,h?max{hi}.

5.5.1 分段线性插值

已知函数y=f(x) 给定节点a=x0?x1?...?xn=b的函数值为yi=f(xi),(i=0,1,?,n) ,求一个分段函数P(x),使其满足:

5-5 5-6 (1) P(xi)=yi,(i=0,1,?,n);

(2) 在每个小区间[xi,xi?1]上,P(x)是一线性函数。称满足上述条件的函数 P(x)为分段线性插值函数。

易知P(x)的图形是一条折线(图5-6),在区间[a,b]上是连续 的,但其一阶导数是不连续的(即不光滑的)。在每个小区间[xi,xi?1]上,

P(x)=

xi?1?xx?xi?yi?1hihi (i=0,1,?,n-1) (2) P(x)=12已知函数y=f(x)=1?x在区间 [0,5]上取等距插值节点(如下表),求区间 [0,5]上分段线性插值函数,并利用它求出 f(4.5)的近似值。 yixi yi

yix?xi?1x?xi?yi?1xi?xi?1xi?1?xi(i=0,1,?,n-1) (1)

0 1 1 0.5 2 0.2 3 0.1 4 0.05882 5 0.03846 解 在每个小区间[i, i+1]上,

x?i?1x?iyi?yi?1?yi(i?1?x)?yi?1(x?i)i?(i?1)(i?1)?iP(x)=

(1?x)?0.5x,x?[0,1]??0.5(2?x)?0.2(x?1),x?[1,2]??P(x)??0.2(3?x)?0.1(x?2),x?[2,3]??0.1(4?x)?0.05882(x?3),x?[3,4]??0.05882(5?x)?0.03846(x?4),x?[4,5] 于是

5.5.2 分段三次埃尔米特插值

已知函数y=f(x)在给定节点a=x0?x1?...?xn=b的函数值及导数值分别

为yi=f(xi),mi=f′(xi) (i=0 ,1,?,n),求一个分段函数H(x),使其满

足:

(1) H(xi)=yi,H′(xi)=mi(i=0,1,?,n);

(2) 在每个小区间[xi,xi?1]上,H(x)是一次数不超过3的多项式。 称满足上述条件的函数H(x)为分段三次埃尔米特插值函数。

易知分段 三次埃尔米特插值函数H(x)及其导数H′(x)都是区间[a,b]上的连续函数,因而是一 种光滑的分段插值,在每个小区间[xi,xi?1]上,

x?xix?xi2x?xi?1x?xi2()1?2()yxi?1?xi)xi?xi?1+yi?1(xi?xi?1)xi?1?xi+ H(3)= i(

x?xi?12x?xi2()()mxxx?xx?xmi(x-i) i?1i +i?1(x-i?1)i?1(i=0,1,?,n-1)

yiyi?122[h?(x?x)](x?x)?[h?2(x?x)](x?x)iii?1ii?1i3hi3H(x)=hi+

1?2mimi?122(x?x)(x?x)?(x?x)(x?x)ii?1i?1i33hhii (4)(i=0,1,?,n-1)例2 12已知函数y=f(x)=1?x在区间[ 0,3]上取等距插值节点(如下表),求区间[0,3]上分段三次埃尔米特插值函数,并 利用它求出f(1.5)的近似值。 xi yi mi 0 1 0 1 0.5 -0.5 2 0.2 -0.16 解 hi=1,由式(4),在每个小区间[i,i+1]上,

22y[1?(x?i)](x?i?1)?y[1?2(x?i?1)](x?i)ii?1 H(x)=+

22m(x?i)(x?i?1)?m(x?i?1)(x?i)ii?1 于是

?(1?2x)(x?1)2?0.5(4?3x)x2,x?[0,1]?220.5x(x?2)?0.04(14x?33)(x?1),x?[1,2] ?H(x)=

22?(1.5?2)?(1.5?1)=0.5?1.5-0.04?(0.4?1.5-33)

F(1.5)?H(1.5)

=0.3125

5.5.3 分段插值的余项及其收敛性

1插值余项

根据拉格朗日线性插值多项式的余项,可以得到分段线

性插值函数的误差估计:

定理1 设给定节点a=x0?x1?...?xn=b,f″(x)在[a ,b]上存在,则当x∈[xi,xi?1]时,

1f\(?)(x?xi)(x?xi?1),??x2!|R(x)|=f(x)-P(x)=(i,xi?1),

从而,对x∈[a,b],有

M22h|R(x)|=|f(x)-P(x)|?8(5)

max其中h={xo?i?n?1i?1\maxxMfia?i?b2-}。 =|(x)|

同理,根据三次埃尔米特插值多项式的余项,可以得到分段三次埃尔米特插值

函 数的误差估计:

(4)定理2设给定节点a=x0?x1?...?xn=b,f(x)在[ a,b]上存在,则当

x∈[xi,xi?1]时,

1(4)f(?)(x?xi)2(x?xi?1)2,??xxR(x)= f(x)-H(x)= 4!(i,i?1) 于是,对x∈[a,b]有

M44h|R(x)|=|f(x)-H(x)|?384

(x)|。 (6)其中h= h=

2收敛性

由式(5), 若f(x)的二阶导数在[a,b]上连续,则当h->0时,

M22h8|R(x)|=|f(x)-P(x)|?->0

所以P(x)在[a,b]上一致收敛于f(x)。

再由式(6),若f(x)的四阶导数在[a,b]上连 续,则当h->0时,

M44h384|R(x)|=|f(x)-H(x)|?->0所以H(x)在[a,b]上一致收敛于f(x)。

于是可以加密插值节点,缩小插值区间,使h减小,从而减小插值误差。

o?i?n?1maxmaxxxMi?1i4{-},=a?i?b|f(4)

第六节 三次样条插值函数

高次插值函数的计算量大,有剧烈振荡,且数值稳定性差;在分段插值中,分段线性插值在分 段点上仅连续而不可导,分段三次埃尔米特插值有连续的一阶导数,如此光滑程度常不能满足物理问题的需要,样条函数可以同时解决这两个问题,使插值函数既是低阶分段函数,又 是光滑的函数,并且只需在区间端点提供某些导数信息。 5.6.1三次样条函数

定义 设在区间[a,b]上取 n+1 个节点

a=x0?x1?...?xn=b 函数y=f(x)在各个节点处的函数值为yi=f(xi)(i=0,1,?,n),若S(x)满足:

(1) S(xi)=yi,i=0,1,?,n ;

(2) 在区间[a,b]上,S(x)具有连续的二阶导数;

(3) 在区间[xi,xi?1](i=0,1,?,n-1)上,S(x) 是x的三次多项式; 称S(x) 是函数y=f(x)在上[a,b]上的三次样条插

S′(x0+0)=S′(xn-0), (5)

S″(x0+0)=S″(x0-0)

此时y0?yn,这样确定的样条函数S(x)称为周期样条函数。

5.6.2三次样条函数的计算

1用节点处的二阶导数表示的三次样条函数——三弯矩方程

由于S(x)的二阶导数连续,设S(x)在节点xi的二阶导数为Mi,即

S″(xi)=Mi,i=0,1,?,n,

Mi是未知、待定的数。因S(x)是分段三次多项式,则S″(x)是分段一次多项式,

且在每个 区间[xi,xi?1]上,S″(x)可表示为

x?xi?1x?xiS\(x)?Mi?Mi?1xi?xi?1xi?1?xi 记hi=xi?1-xi,则

x?xi?1x?xiMi?Mi?1hihi

将上式在区间[xi,xi?1]上积分两次,并且由S(xi)=yi,S(xi?1) =yi?1S\(x)?来确定两个积分常数,可得当x∈[xi,xi?1]时,

(xi?1?xi)3(x?xi)Mi?Mi?1?6hi6hihi2xi?1?xhi2x?xi(yi?Mi)?(yi?1?Mi?1)6hi6hi (5.6.6) S(x)=

对上式求导得:

(xi?1?x)2(x?xi)y?yiMi?1?Mi?Mi?Mi?1?i?1?hi2h2hh6iiiS′(x)=(7) 利用S(x)一阶导数连续的性质,在上式中令x=xi,得: hhy?yiS'(xi?0)??iMi?iMi?1?i?136hi

将式(7)中的i换成i-1,得S′(x)在[xi?1,xi]上的表达式

(xi?x)2(x?xi?1)y?yi?1Mi?Mi?1?Mi?1?Mi?i?hi?12h2hh6i?1i?1i?1S′(x)=

hhy?yi?1S'(xi?0)??i?1Mi?1?i?1Mi?i63hi?1 用x=xi代入,得:

利用S′(xi-0)=S′(xi+0)可得:

hi?1h?hi?1hy?yiyi?yi?1Mi?1?iMi?i?i?1?636hihi?1

6两边乘以hi?1?hi,得:

uiMi?1?2Mi??iMi?1?di, i=1,2,?,n-1 (5.6.8) 其中

hi?1hiui?,?i??1?uihi?1?hihi?1?hidi?y?yiyi?yi?16(i?1)?6f[xi?1,xi,xi?1]hi?1?hihihi?1 (9)

这是含有n+1个未知量M0,M1,...,Mn共有n-1个方程组成的线性方程组,欲确定该方 程组的解,尚缺2个方程。因此求三次样条函数还要2个附加条件。 常见的问题有下面两种提法: ①第一类问题 附加条件①,即给出边界端点的一阶导数值:S′(x0)=m0,S′(xn)?mn。

利用前面已推导的公式,当x∈[xi,xi?1]时,

(xi?x)2(x?xi?1)y?yi?1Mi?Mi?1?Mi?1?Mi?i?hi?12hi?12hi?1hi?16S′(x)=

取i=0,x=x0,得:

h0hy?yi?0M0?0M1?1m0=36h0

取i=n-1,x=xn,得:

?hn?1hy?yn?1Mn?1?n?1Mn?n63hn?1

移项,得:

?2M0?M1?d0?M?2Mn?dn ?n?1

66d0?(f[x0,x1]?m0),dn?(mn?f[xn?1,xn])h0hn?1其中与式(8)联立得一n+1元线

mn?2M0?M1?d0???1M0?2M1??1M2?d1??????M?2M??M?dn?1n?1nn?1?n?1n?2?Mn?1?2Mn?dn性方程组:? (10)

其系数矩阵是严格对角占优的三对角矩阵:

?2???1???????12?12??2?2??n?1???????2?n?1??12??

可以用追赶法解出Mi(i=0,1,?,n),将其代入式(6),即得到三次样条函数的分

段表达式。

②第二类问题 附加条件②,即给出边界端点的二阶导数值:S″(x0) =M0,S″(xn)=Mn,代入式(8)得一n-1元线性方程组:

2M1??1M2?d1??1M0???2M1?2M2??2M3?d2??????M?2M??M?dn?2n?2n?1n?2?n?2n?3???n?1Mn?2?2Mn?1?dn?1??n?1Mn (11) 其系数矩阵为

?2???2????????12?22??3?3??2?n?2?n?3???????n?2??2??

这是一个三对角矩阵,由于?i??i?2,因而它是严格对角占优的。原方程组 是

个三对角方程组,可以用追赶法解出Mi,i?1,2,?,n?1,代入式(6),即得到三次样条函数的分段表达式。

2用节点处的一阶导数表示的三次样条函数——三转角方程

由于S(x)的一阶导数连续,设S(x)在节点xi处的一阶导数值为mi,即

S′(xi)=xi,i=0,1,?,n,

mi是未知、待定的数。因S(x)是分段三次多项式,则在每个区间[xi,xi?1] 上

是三次多项式,且满足

S(xi)=yi,S(xi?1)=yi?1,S′(xi)=xi,S′(xi?1)=mi?1,

故S(x)是[x0, xn]上的分段三次埃尔米特插值多项式,当x∈[xi,xi?1]时 

x?xix?xi2x?xi?1x?xi21?2()1?2()yyx?xx?xx?xx?xi?1i)ii?1ii?1)i?1iS(x)= i(+i?1(+

x?xi?12x?xi2)()mi (x-xi) x?xi?1 +mi?1(x-xi?1)xi?1?xi(i=0,

(1,?,n-1) (3) 或写为

yiyi?12[h?2(x?x)](x?x)?[hi?2(x?xi?1)](x?xi)2iii?133hi S(x)=hi+

mimi?122(x?x)(x?x)?(x?x)(x?x)ii?1i?1i3hi3 hi

将上式在区间[xi,xi?1]上求导两次,可得当x∈[xi,xi?1]时,

6yi6yi?1[h?2(x?x)](x?x)?[hi?2(x?xi?1)](x?xi)iii?133hhiS′(x)=i+

mimi?1[2h?3(x?x)](x?x)?[?2hi?3(x?xi)](x?xi)ii?1i?122hi hi 和

yiyi?1[6h?12(x?x)]?[6hi?12(x?xi?1)]ii33hi S″(x) =hi+ mimi?1[2h?6(x?x)]?[?2hi?6(x?xi)]ii?122hhi i

利用S(x)二阶导数连续的性质, 在上式 中令x=xi,得:

426?mi?mi?1?2(yi?1?yi)hihiS″(xi+0)=hi 将上式中的i换成i-1 ,得S″(x)在[xi?1,xi]上的表达式

yi?1yi[6h?12(x?x)]?[6hi?1?12(x?xi?1)]i?1i33hi?1S″(x) ==hi?1+

mi?1mi?1[2h?6(x?x)]?[?2hi?1?6(x?xi?1)]i?1i22hhi?1 i?1

用x=xi代入,得:

S″(xi-0)=

利用S″(xi-0)=S″(xi+0)可得:

?246mi?1?mi?2(yi?yi?1)hi?1hi?1hi

111111mi?1?2(?)mi?mi?1?3[2(yi?yi?1)?2(yi?1?yi)]hi?1hihihi?1hi hi?1

hi?1hi两边乘以hi?1?hi,得:

?imi?1?2mi?uimi?1?g,i?1,2,...,n?1 (13) 其中

ui?hi?1hi,?i??1?uihi?1?hihi?1?hiyi?1?yiy?yi?1??ii),i?1,2,...,n?1hihi?1(14)

di?3(ui这是含有n+1个未知 量m0,m1,...,mn共有n-1个方程组成的线性方程组,欲确定该方程组的解,尚缺2个 方程。因此,求三次样条函数还要2个附加条件。有关情形与节点处的二阶导数表示的三次样条函数类似,叙述如下: ①①第一类问题 附加条件①,即给出边界端点的一阶导数值:s'(x0)?m0,s'(xn)?mn时,则方程组为:

2m1??1m2?g1??1m0???2m1?2m2??2m3?g2??????m?2m??m?gn?2n?2n?1n?2?n?2n?3???n?1mn?2?2mn?1?gn?1??n?1mn (15)

②②第二类问题 附加条件②,即给出边界端点的二阶导数值:S″(x0) =M0,

S″(xn)=Mn, 时,利用前面己推导的公式,当x∈[xi,xi?1]时,

yiyi?1[6h?12(x?x)]?[6hi?12(x?xi?1)]ii33hiS″(x) =hi+

mimi?1[2h?6(x?x)]?[?2hi?6(x?xi)]ii?122hi hi

取i=0,x=x0,得:

426M0??m0?m1?2(y1?y0)h0h0h0

取i=n-1,x=xn,得

246Mn??m0?mn?2(yn?yn?1)hn?1hn?1hn?1 移项,得:

?2m0?m1?g0?m?2mn?gn ?n?1

其中g0=3f[x0,x1]-〖SX()h0〖〗2〖SX〗〗M0,gn=3f[x n-1,xn]+〖SX()hn-1〖〗2〖SX〗〗Mn.与式(13)联立可以建立如下方程组 :

2m0?m1?g0???1m0?2m1??1m2?g1??????m?2m??m?gn?1n?1nn?1?n?1n?2?mn?1?2mn?gn? (16)

两种情形的系数矩阵均为严格对角占优的三 对角矩阵,可 以用追赶法求解,从而得到三次样条函数的分段表达式。

例1 已知f(x)的函数值为 0 1 2 3 xi yi 0 0 0 0 试分别求函数f(x)满足下列边界条件的三次样条插值函数: (1) S′(0)=1,S′(3)=0; (2) S″(0)=1,S″(3)=0.

解,h0?h1?h2?1,ui??i?1/2,,i=1,2. (1)边界条件为m0?1,m3=0,用式(15)求解简单。由式(14)计算得 〖JZ〗f[0,1]=f[1,2]=f[2,3]=0,g1?g2=0 代入式(15)得方程组

?21/2??m1??0?1/20?1??1/22??m???0?1/2?0???2??? ?解得

m1??4/15,m2?1/15

利用公式

yiyi?12[h?2(x?x)](x?x)?[hi?2(x?xi?1)](x?xi)2iii?133hiS(x)=hi+

mimi?122(x?x)(x?x)?(x?x)(x?x)ii?1i?1i33hhii 

i=0,1,2

并注意到边界条件m0?1,m3=0,求得三次样条函数如下:

?1/15x(1?x)(15?11x),x?[0,1]??1/15(x?1)(x?2)(7?3x),x?[1,2]?1/15(x?2)(x?3)2,x?[2,3]s(x)=?

(2)边界条件为M0?1,M3?0,用式(11)计算简单。由

di?y?yiyi?yi?16(i?1)?6f[xi?1,xi,xi?1]hi?1?hihihi?1 (i=1,2),

得

代入式(11)得方程组

d1 =6f[0,1,2]=6/(1+2)[(0-0)/0-(0-0)/1]=0 d2 =6f[1,2,3]=6/(1+1)[(0-0)/1-(0-0)/0]=0

?21/2??M1??0?1/2?1??1/22??M???0?1/2?0????2??? 解得

yiyi?12[h?2(x?x)](x?x)?[hi?2(x?xi?1)](x?xi)2iii?133hiS(x)=hi+

mimi?122(x?x)(x?x)?(x?x)(x?x)ii?1i?1i3hi3 hi

i=0,1,2

并注意到M0?1,M3?0求得三次样条函数如下:

?1/90x(1?x)(19x?26),x?[0,1]??1/90(x?1)(x?2)(5x?12),x?[1,2]?1/90(x?2)(3?x)(x?4),x?[2,3]s(x)= ?

第七节 反插值

假设函数y=f(x)以表格形式给出如下 X Y x1 y1 x2 ? ? xn?1 yn?1 xn yn y2 反插值 就是要以函数y的值来求自变量的x的值. 5.7.1 反插值及余项

设函数y=f(x)在含xx0,x1,?,xn的区间[a,b]上严格单调,则由高等数学

?1f(y),此时反插值问题有知识 可知,y与x是一一对应的,即存在反函数x=

唯一解存在。 

一般情况下,可用拉格朗日插值多项式或牛顿插值多项式,只须将y与x的位置互换即可。如 用拉格朗日插值多项式对上表作反插值有

n(y?y0)...(y?yi?1)(y?yi?1)...(y?yn)Ln(y)??xi(yi?y0)...(yi?yi?1)(yi?yi?1)...(yi?yn) i?0反插值的余项为

(?)](n?1)Rn(y)?(y?y0)(y?y1)...(y?yn)(n?1)!

5.3.2 反插值的应用

1. 已知函数y的值,求自变量x的值; 2. 求方程f(x)=0的近似根。 例1 已知数据如下 X 10 15 17 20 y 3 7 11 17 求函数y=10时自变量x的值。

解 对这四个点,y=f(x)严格递增,故解唯一。用拉格朗日插值公式有

[f?1?1f(y)=i?0x=

代入y=10,得到

x= ≈L3(10)

(10?7)(10?11)(10?17)(10?3)(10?11)(10?17)10.?15?(3?7)(3?11)(3?17)(7?3)(7?11)(7?17)L3(y)??xi3(y?y0)...(y?yi?1)(y?yi?1)...(y?y3)(yi?y0)...(yi?yi?1)(yi?yi?1)...(yi?y3)

(10?3)(10?7)(10?17)(10?3)(10?7)(10?11)?20(11?3)(11?7)(11?17)(17?3)(17?7)(17?11)1514717?491??????16.643232642=17?x

例2 例2 已知下列数据表是y=f(x)=e-x的一组数 x 0.50 0.55 0.60 0.65 0.70 Y 0.10653 0.02695 -0.05119 -0.12795 -0.20341 且方程y=f(x)在区间[0.5,0.7]内有唯一零点,用反插值求方程f(x)=0在区间[0.5 ,0.7]内的根的近似值。 解〓用牛顿插值,列差商表如下 i 一阶差商 二阶差商 三阶差商 四阶差商 0 0.10653 0.50 1 0.02695 0.55 -0.62830 2 -0.05119 0.60 -0.63988 0.07342 3 -0.12795 0.65 -0.65138 0.07424 -0.00350 4 -0.20341 0.70 -0.66260 0.07371 -0.00230 0.01875 由上表可得方程f(x)=0在区间[0.5,0.7]内的根的近似值依次为:

x(1)?N1(0)?0.5?0.6283(?0.10653)?0.56693x(2)?N2(0)?x(1)?0.07342(?0.10653)(?0.02695)?0.56714x(3)?N3(0)?x(2)?0.0350(?0.10653)(?0.02695)(0.05119)?0.56714x(4)?N4(0)?x(3)?0.01875(?0.10653)(?0.02695)(0.05119)(0.12759)?0.56714

?5e?x-x=0的近似解为0.56714,由此可得,误差为10,实际计算f(0.56714)

>0,f(0.56715)<0.