



根据区间[a,b]上给出的节点可以得到函数f(x)的插值多项式,作为f(x)的近似函数,在插值节点处精确相等。增加节点,代数插值多项式次数增高,相应的点(节点)数增多,然而插值多项式逼近f(x)的精度并不随之增加。
例如函数
,在[-5,5]上任意阶导数存在,但在[-5,5]上取n+1个等距节点
,则其拉格朗日插值多项式
n→∞时,拉格朗日插值多项式是发散的,在某些点误差非常大,此现象称为龙格(Runge)现象,如图2.2所示(n=10)。
图 2.2 龙格现象
可见,次数太高的插值多项式并不能很好地逼近一个一般的函数。
为了避免龙格现象的发生,人们常常采用分段函数进行分段插值。即将插值区间分成若干小区间,在每个小区间上运用插值法构造低次插值多项式。例如线性插值多项式和抛物线插值多项式等,前者称为分段线性插值,后者称为分段抛物线插值。
给定函数f(x)在[a,b]上n+1个互异节点a≤x 0 <x 1 <…<x n ≤b的函数值y i (i=0,1,…,n)。
若在每一小区间[x i -1 ,x i ]上作线性插值,即取
作为f(x)在[x i -1 ,x i ]上的近似表达式,则称φ 1 (x)为f(x)的分段线性插值函数。
可以证明,对于取值f(x
i
)=y
i
(i=0,1,…,n)的被插函数f(x),令h
i
=x
i
-=…x
i
-1
(i1,2,,n),并记
,则有误差估计式
同样地,若在每一小区间[x i -1,x i +1 ](中间节点x i )上作抛物线插值,即取
作为f(x)在[x i -1 ,x i +1 ]上的近似表达式,则称φ 2 (x)为f(x)的分段抛物线插值函数。相应地有误差估计式
注: 分段插值不能保证各小段间的光滑性。
例2.9
设函数
,x∈[-5,5],讨论由10等分时分段线性插值的误差限。
解
将区间[-5,5]分为10等分此时,h=1,又
,所以
。于是
代数插值多项式有很好的光滑性,但随节点增加反而精度降低,因为高阶差分误差传播大。分段低次插值算法简单,近似程度好,然而光滑性差。由于航空、造船等高精端工程设计的需要而发展起来的样条插值方法,既保留了分段低次插值的各种优点,又提高了插值函数的光滑性,在许多领域都有广泛的应用。
样条插值是用样条函数去逼近函数。
定义2.4 对区间[a,b]的一个划分Δ:a=x 0 <x 1 <…<x n -1<x n =b,函数S(x)满足:
1)S(x)在[x i ,x i +1 ],(i=0,1,…,n-1)上为k次多项式;
2)S(x)及其1,2,…,k-1阶导数在区间[a,b]连续。
则称S(x)为区间[a,b]上对应于划分Δ的k次多项式样条函数,x 0 ,x 1 ,…,x n 为样条节点。且若对于节点x i 上给定的函数值f(x i )=y i (i=0,1,…,n),有
则称S(x)为k次样条插值函数。
k=1时的样条插值函数就是分段线性插值,k=3时是使用较多的三次样条插值函数。
例2.10 已知函数
是以0,1,2为节点的三次样条函数,求系数b,c的值。
解 取x 0 =0,x 1 =1,x 2 =2,由定义知S(x)∈C 2 [0,2],即
S(x 1 -0)=S(x 1 +0),S′(x 1 -0)=S′(x 1 +0),S″(x 1 -0)=S″(x 1 +0)
于是由S(x)和S′(x)分别在x 1 =1处连续得
解得
b=-2,c=3
为求解三次样条插值函数,先介绍三次样条插值问题。设
其中S i (x)(i=1,…,n)为不超过三次的多项式。
三次样条插值函数S(x)在每个子区间[x i ,x i +1 ]上可用三次多项式的4个系数唯一确定,因此S(x)在[a,b]上有4n个待定参数。
由于S(x)∈C 2 [a,b],有
该条件给出了3(n-1)个约束。另外,插值条件
S(x i )=y i ,i=0,1,2,…,n
给出了n+1个约束。从而总共给出了4n-2个约束,与待定参数相比还少2个约束。为了确定S(x),在区间[a,b]的端点处补充两个条件,称为边界条件。常用的边界条件有下列3种。
①给定端点的一阶导数值
,
;
②给定端点的二阶导数值
,
;特别地,对于S″(x
0
)=S″(x
n
)=0的边界条件称为自然边界条件;
③周期边界条件S(x 0 )=S(x n ),S′(x 0 )=S′(x n ),S″(x 0 )=S″(x n )。
下面仅介绍三次样条插值函数的具体构造方法。
记S′(x j )=m j (j=0,1,…,n),则在区间[x j ,x j +1 ](j=0,1,…,n-1)上满足:
S(x j )=y j ,S(x j+ 1 )=y j+ 1,S′(x j )=m j ,S′(x j+ 1 )=m j+ 1 (j=0,1,…,n-1)
设h j =x j +1 -x j ,当x∈[x j ,x j +1 ]时,有
(j=0,1,…,n-1),其中p,q为待定系数。
则
因为
所以
解之得
于是
由二阶导数在内节点处连续S j″ (x j +0)=S″ j -1(x j -0),j=1,2,…,n-1可导出关于参数m j 的方程组
其中
注:
方程组中参数
,
已知时,称式(2.28)为三转角方程。
令
。
当x∈[x
j
,x
j
+1
]时,直线
过(x
j
,M
j
)和(x
j
+1
,M
j
+1
)两点,从而有
对上式连续积分两次
根据插值条件S j (x j )=y j ,S j (x j +1 )=y j +1 确定出任意常数c 1 j ,c 2 j ,
于是
由上式知,只要求出所有的参数M j ,就可确定S j (x)。
对上式求导,并利用一阶导数的连续性:
,j=1,…,n-1得
或
则可得方程组
其中
方程组(2.31)称为三弯矩方程。它含有n+1个参数M 0 ,M 1 ,…,M n ,还需要利用前面的任一组边界条件才能完全确定所有参数。例如,给定边界条件
由式(2.30)可分别得方程
即
注: 若是第二种边界条件,则M 0 ,M n 是已知的。
例2.11 已知函数在节点处函数值
求满足边界条件y′(0)=1,y′(3)=0的三次样条插值函数。
解 方法1用一阶导数为参数的三转角方程
由于h
j
=1(j=0,1,2),计算得
因为m 0 =1,m 3 =0,所以得三转角方程
解得
,
。则三次样条插值函数为
方法2用二阶导数为参数的三弯矩方程
因为h
j
=1(j=0,1,2),
,λ
j
=1-μ
j
,所以
又由
计算得
由式(2.31)得
由边界条件得
2M 0 +M 1 =6,M 2 +2M 3 =-78
于是得三弯矩方程
或用矩阵形式表示为
解得
,
,
,
。
则三次样条插值函数为
注: 本题是第1种边界条件,用三弯矩方程求解要复杂一些。
例2.12 已知数据表
求y=f(x)在[0,3]上的三次样条插值函数,并作图。
解
由于已知函数在端点的二阶导数值,因此用三弯矩方程求解相对简单一些。已知h
i
=1(i=)0,1,2,则
,
,g
1
=-3,g
2
=3;从而由式(2.31)有
将M 0 =1,M 3 =0代入得
解得
,
。则三次样条插值函数为
图形如图2.3所示:
图 2.3 三次样条插值函数