数值分析(6):分段低次和三次样条插值

本文介绍了数值分析中的分段低次插值和三次样条插值方法,包括分段线性插值和分段三次Hermite插值。讨论了Runge现象以及如何通过分段插值克服它。详细阐述了三次样条插值的定义、待定系数法和三弯矩法,并提供了相关例题进行解析。同时探讨了插值余项的计算,以评估插值误差。
摘要由CSDN通过智能技术生成

1. 引言

根据前一章《数值分析(5):插值法》可知,给定 n + 1 n+1 n+1个点,可以用Newton法或lagrange法插出一个 n n n次多项式函数 φ ( x ) \varphi(x) φ(x),让 φ ( x ) \varphi(x) φ(x)能够精确地穿过这 n + 1 n+1 n+1个点,且通过插值余项我们可以知道不处于这 n + 1 n+1 n+1个点的原函数值和插值函数值之间的差异,即:

在这里插入图片描述

那么是不是给的点越多,插值出来的多项式函数 φ ( x ) \varphi(x) φ(x)在其他点处的误差就越小呢?即插值余项 R n ( x ) R_n(x) Rn(x)越小?答案是否定的,因为 f ( n + 1 ) ( ξ x ) f^{(n+1)}(\xi_x) f(n+1)(ξx)不一定能被一个常数控制住,所以不一定n越大, R n ( x ) R_n(x) Rn(x)越小。

如下图所示,给定11个点,用lagrange插值法插值得到的 L 10 ( x ) L_{10}(x) L10(x)如图虚线所示,而原本的函数为实线所示,明显在 ∣ x ∣ < 3.63 |x|<3.63 x<3.63这个区间内,误差是较小的,而在这个区间外,误差是较大的,这个现象称为Runge现象

在这里插入图片描述

为了克服这种现象,可以采用分段低次插值方法或选择非等距的特殊节点。

2. 分段低次插值方法

2.1 分段线性插值

分段线性插值就是相邻插值节点之间用线段连接,从而构成的插值函数。

分段线性插值的定义如下:

在这里插入图片描述

分段线性插值多项式 φ ( x ) \varphi(x) φ(x)依赖于节点个数 n + 1 n+1 n+1,还依赖于节点 x 0 , x 1 , … , x n x_0, x_1,…,x_n x0,x1,,xn之间的距离 h k = x k − x k + 1 h_k=x_k -x_{k+1} hk=xkxk+1

利用线性插值多项式的误差估计:
在这里插入图片描述
可以得到下面定理:
在这里插入图片描述
定理的本质是根据一个个小区间 [ x k . x k − 1 ] [x_k.x_{k-1}] [xk.xk1]的误差估计得到一个整体大区间 [ a , b ] [a,b] [a,b]的误差估计。

2.2 分段三次Hermite插值

分段线性插值的不足之处是,节点处的导数不连续,那么为了让导数能够连续从而让插值曲线看上去更加平滑,需要用到三次Hermite插值(Hermite插值是带导数的插值,三次Hermite插值意味着最高阶次数为3,有4个待定系数)

分段三次Hermite插值的构造方法如下,就是每两个节点间的多项式是Hermite三次多项式,不仅要求节点处 x i x_i xi的函数值 φ ( x i ) = f ( x i ) \varphi(x_i)=f(x_i) φ(xi)=f(xi),还要求节点处 x i x_i xi的导数值 φ ′ ( x i ) = f ′ ( x i ) \varphi'(x_i)=f'(x_i) φ(xi)=f(xi)
在这里插入图片描述

在每个小区间 [ x k , x k + 1 ] [x_k,x_{k+1}] [xk,xk+1]上用基于Newton的Hermite插值,即用均差形式:
在这里插入图片描述
上式对于 k = 0 , 1 , … , n − 1 k =0,1,…,n-1 k=0,1,,n1均成立。

同样地,小区间内三次Hermite插值多项式误差估计为:
在这里插入图片描述

那么对于整个大区间内的误差估计,自然地存在以下定理:

在这里插入图片描述

3. 三次样条插值函数

什么是样条:是指飞机或轮船等的制造过程中为描绘出光滑的外形曲线(放样)所用的工具。样条本质上是一段一段的三次多项式拼合而成的曲线,在拼接处,不仅函数是连续的,且一阶和二阶导数也是连续的。

1946年,Schoenberg将样条引入数学,即所谓的样条函数.

可以看到在前面的分段三次Hermite插值中,虽然能够保证插值函数 φ ( x ) \varphi(x) φ(x)在节点处连续,但是一般在节点处的导数我们并不知道,所以可以认为分段三次Hermite插值的要求过高了。

本节的样条插值函数只要求在节点处的导数值相等即可,不要求等于 f ′ ( x i ) f'(x_i) f(xi)

三次样条插值函数的定义如下:
在这里插入图片描述

如何求解三次样条插值函数?

有以下两种方法:

3.1 待定系数法

因为每个小区间内的函数是三次多项式函数,所以将 f ( x ) f(x) f(x)的定义域分成 n n n个区间后有 4 n 4n 4n个待定系数。

根据连续性条件可知,节点处的函数值要相等且等于给定的 f ( x ) f(x) f(x)函数值,节点处的一阶导数连续,二阶导数连续,即:

在这里插入图片描述

还需要两个条件才能完全地确定这n个小区间的三次样条插值多项式,而这两个条件就构成了边界条件,有以下两种边界条件:

在这里插入图片描述

3.2 三弯矩法

因为 S ( x ) S(x) S(x)在子区间 [ x j , x j + 1 ] [x_j,x_{j+1}] [xj,xj+1]上是三次多项式。因此 S ′ ′ ( x ) S''(x) S(x) [ x j , x j + 1 ] [x_j,x_{j+1}] [xj,xj+1]上是线性函数,不妨令:
在这里插入图片描述
那么根据lagrange插值法可得:
在这里插入图片描述
做两次不定积分后得:
在这里插入图片描述

利用在节点处的函数值相等,即: S ( x j ) = f ( x j ) , S ( x j + 1 ) = f ( x j + 1 ) S(x_j)=f(x_j),S(x_{j+1})=f(x_{j+1}) S(xj)=f(xj),S(xj+1)=f(xj+1),可以求出积分常数 C 1 , C 2 C_1,C_2 C1,C2
在这里插入图片描述
那么小区间内的插值函数 S ( x ) S(x) S(x)还有 M j M_j Mj待确定。我们还有一阶导数连续这个条件没用(注意二阶导数连续这个条件在构造插值函数 S ( x ) S(x) S(x)的时候已经在 M j M_j Mj中体现了)

C 1 , C 2 C_1,C_2 C1,C2这两个参数代入 S ( x ) S(x) S(x)中,然后对其求导,得:
在这里插入图片描述
计算出在 x j + x^+_{j} xj+处的导数值为:
在这里插入图片描述
再计算得到在 x j − x^-_{j} xj处的导数值为:
在这里插入图片描述
两者相等,即得:
在这里插入图片描述
若采用II性边界条件,即:
在这里插入图片描述
那么上式(6.6),可以得到一个关系式,用矩阵表示即为:
在这里插入图片描述
系数矩阵和等式右边的值矩阵都已知,并且由于 λ i + μ i = 1 \lambda_i+\mu_i=1 λi+μi=1且两者都介于0~1之间,所以上式的系数矩阵是严格对角占优矩阵,可以对其进行Doolittle分解,从而求解出 M i ( i = 1 , 2 , . . . , n − 1 ) M_i(i=1,2,...,n-1) Mi(i=1,2,...,n1)

接下来来看一道例题:
在这里插入图片描述
在这里插入图片描述

如果采用I型边界条件,即:
在这里插入图片描述
那么求出 S ′ ( x ) S'(x) S(x)后得到:
在这里插入图片描述

根据上面的两个方程,再综合前面得到的方差,可以得到以下的矩阵关系式:
在这里插入图片描述
系数矩阵同样是一个严格对角占优矩阵。

下面来看一道相关例题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 插值余项

那么与分段线性插值相类似地,三次样条插值的插值余项是:
在这里插入图片描述

参考文献:

关治,陆金甫《数值方法》

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值