高次多项式插值的局限性
收敛性差(Runge现象)
以函数 f(x)=1+x21(x∈[−5,5]) 为例,在等距节点上构造插值多项式 Ln(x),其收敛性表现为:
n→∞limLn(x)={−f(x),不收敛,∣x∣≤c(c≈3.63)∣x∣>c
这表明高次多项式插值可能在某些区域发散,无法保证全局逼近效果。
保凸性差与数值不稳定性
- 多余拐点:插值多项式可能出现违背原始数据单调性或凸性的振荡。
- 误差传播:单个节点的函数值误差会影响整个区间的插值结果,导致病态问题。
分段线性插值
基本思想
将相邻数据点用直线连接,形成分段一次多项式函数。给定节点 x0<x1<⋯<xn 及对应函数值 f0,f1,…,fn,分段线性插值函数 Ih(x) 的表达式为:
Ih(x)=j=0∑nfjlj(x)
其中基函数 lj(x) 定义为:
lj(x)=⎩⎪⎨⎪⎧xj−xj−1x−xj−1,xj−xj+1x−xj+1,0,x∈[xj−1,xj](j=0)x∈[xj,xj+1](j=n)其他区域
误差估计与收敛性
插值误差由 Lagrange 余项给出:
∣f(x)−Ih(x)∣≤8M2h2
其中 M2=max∣f′′(x)∣,h 为最大区间长度。若 f(x)∈C2[a,b],则当 h→0 时,Ih(x) 一致收敛于 f(x)。
分段埃尔米特(Hermite)插值
整体思想
在节点处同时插值函数值和导数值,构造光滑性更高的分段多项式。对于节点 x0,x1,…,xn,要求插值多项式 H(x) 满足:
H(xi)=f(xi),H′(xi)=f′(xi)
其一般形式为:
H2n+1(x)=j=0∑n[fjαj(x)+fj′βj(x)]
基函数 αj(x) 和 βj(x) 需满足:
αj(xi)=δij,αj′(xi)=0;βj(xi)=0,βj′(xi)=δij
两点三次埃尔米特插值
在子区间 [xk,xk+1] 上,三次 Hermite 插值多项式为:
H3(x)=fkα~k(x)+fk+1α~k+1(x)+fk′β~k(x)+fk+1′β~k+1(x)
其中基函数的具体形式为:
α~k(x)β~k(x)=(1+2xk+1−xkx−xk)(xk−xk+1x−xk+1)2,=(x−xk)(xk−xk+1x−xk+1)2.
该插值函数在节点处一阶导数连续(C1 光滑),且全局收敛。
保形分段插值(Shape-Preserving)
核心思想
通过自动设定节点导数值,使分段 Hermite 插值既保持光滑性,又保留原始数据的单调性与凸性。
导数值设定方法
- 计算割线斜率:对节点 xk,计算相邻差商:
dk−1=xk−xk−1f(xk)−f(xk−1),dk=xk+1−xkf(xk+1)−f(xk)
- 导数值规则:
其中权重 wk 通常取区间长度。
样条插值
1. 核心动机
- 分段插值的不足:分段线性插值(C0 连续)和分段 Hermite 插值(C1 连续)的二阶导数不连续,导致曲线光滑性不足。
- 物理背景:样条(spline)源于工程师绘图时使用的弹性木条,通过固定节点形成光滑曲线。物理上,样条的势能最小化要求曲线二阶导数连续(C2 光滑)。
三次样条插值
三次样条插值函数
定义 6.8:给定插值节点 x0<x1<⋯<xn∈[a,b],若函数 S(x) 满足:
- 在每个子区间 [xj,xj+1] 上为三次多项式;
- 整体二阶导数连续(S(x)∈C2[a,b]);
- 插值条件 S(xj)=f(xj),则称 S(x) 为三次样条插值函数。
基本形式
三次样条函数 S(x) 的分段表达式为:
S(x)=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧s0(x),s1(x),⋮sn−1(x),x∈[x0,x1]x∈[x1,x2]x∈[xn−1,xn]
其中每段 sj(x) 为三次多项式,满足:
sj(xj)=fj,sj(xj+1)=fj+1,sj−1′(xj)=sj′(xj),sj−1′′(xj)=sj′′(xj)
以二阶导数为参数的构造方法
假设 S′′(xj)=Mj,在子区间 [xj,xj+1] 上,二阶导数为一次多项式:
S′′(x)=Mjhjxj+1−x+Mj+1hjx−xj,hj=xj+1−xj
两次积分后得到 S(x) 的表达式:
S(x)=Mj6hj(xj+1−x)3+Mj+16hj(x−xj)3+(fj−6Mjhj2)hjxj+1−x+(fj+1−6Mj+1hj2)hjx−xj
通过一阶导数连续条件和边界条件,最终得到关于 Mj 的线性方程组。
边界条件的类型与处理
为唯一确定三次样条插值函数,需补充两个额外条件:
第一类边界条件(固定斜率)
给定端点处一阶导数:
S′(x0)=f0′,S′(xn)=fn′
第二类边界条件(自然样条)
给定端点处二阶导数(通常取零):
S′′(x0)=f0′′=0,S′′(xn)=fn′′=0
第三类边界条件(周期性)
假设函数为周期函数,周期为 xn−x0,要求:
S′(x0)=S′(xn),S′′(x0)=S′′(xn)
第四类边界条件(Not-a-Knot)
强制首尾两个子区间为同一三次多项式,Matlab spline
函数默认采用此条件。
求解三弯矩方程
通过边界条件和导数连续性,可建立关于 Mj 的三对角线性方程组:
{μjMj−1+2Mj+λjMj+1=dj边界条件对应的方程(j=1,…,n−1)
其中系数矩阵严格对角占优,保证解的存在唯一性。解出 Mj 后代入分段表达式即得三次样条插值函数。
B-样条函数简介
基本概念
- k次样条函数:具有 k−1 阶连续导数的分段k次多项式。
- B-样条基函数:局部非零的分段多项式基函数,广泛应用于计算机图形学、几何建模和微分方程数值解。
典型应用
- 1次B-样条:等价于分段线性函数。
- 3次B-样条:光滑性高,适合复杂曲线建模。