在多项式插值 与Hermite 插值 中,我们构造的都是跨越整个定义域 [ a , b ] [a, b] [ a , b ] 的全局单一多项式。
全局高次多项式面临一个固有的架构缺陷:全局刚性 。因为整条曲线被同一个解析式支配,只要在局部微调一个采样点,由此引发的波动就会传导至整个区间。当实际工程中的采样点膨胀到成百上千个时,全局高次拟合不仅条件数恶化,而且计算极不稳定。
现代数值计算的破局之道是分段逼近 :将大区间 [ a , b ] [a, b] [ a , b ] 细分为若干子区间,在每个区间上分别拟合低次多项式,并在交界节点处施加严格的光滑拼接。
本篇笔记系统建立分段插值与三次样条的理论框架[1] [1] R. L. Burden and J. D. Faires, Numerical Analysis , 9th ed. Brooks/Cole, Cengage Learning, 2011., [2] [2] M. U. School of Mathematics, “MTH2051: Introduction to Computational Mathematics: Course Lecture Notes and Study Workbooks,” 2026. Monash University course materials and study workbooks, Semester 2, 2026. :
分段线性插值 :推导带有精确常数 1 / 8 1/8 1/8 的 h 2 8 max ∣ f ′ ′ ∣ \frac{h^2}{8} \max |f''| 8 h 2 max ∣ f ′′ ∣ 一致误差界;
分段二次插值 :基于区间中点的 O ( h 3 ) \mathcal{O}(h^3) O ( h 3 ) 局部逼近;
三次样条插值 :在 C 2 C^2 C 2 光滑度与未知自由度之间建立严谨核算;
三大边界条件 :对比自然边界、固支边界与非节点边界,剖析边界曲率不兼容时的降阶现象;
三弯矩方程组 :推导严格对角占优的三对角线性系统,以 O ( n ) \mathcal{O}(n) O ( n ) 复杂度快速求解;
方法决策全景图 :系统整理各类插值方法的选用边界。
分段线性插值
最朴素的分段逼近方法,是用折线段顺次连接相邻的已知数据点。
定义 分段线性插值函数
设剖分 a = x 0 < x 1 < ⋯ < x n = b a = x_0 < x_1 < \dots < x_n = b a = x 0 < x 1 < ⋯ < x n = b 将区间 [ a , b ] [a, b] [ a , b ] 划分为 n n n 个子区间。在每个子区间 [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] 上,线性插值多项式定义为:
L i ( x ) = f ( x i ) x i + 1 − x x i + 1 − x i + f ( x i + 1 ) x − x i x i + 1 − x i . L_i(x) = f(x_i) \frac{x_{i+1} - x}{x_{i+1} - x_i} + f(x_{i+1}) \frac{x - x_i}{x_{i+1} - x_i}. L i ( x ) = f ( x i ) x i + 1 − x i x i + 1 − x + f ( x i + 1 ) x i + 1 − x i x − x i . 全局分段线性插值函数由各段拼合而成:当 x ∈ [ x i , x i + 1 ] x \in [x_i, x_{i+1}] x ∈ [ x i , x i + 1 ] 时,L ( x ) = L i ( x ) L(x) = L_i(x) L ( x ) = L i ( x ) 。
在任意内部分界节点 x i x_i x i 处,左右相邻两段的函数值相等:L i − 1 ( x i ) = f ( x i ) = L i ( x i ) L_{i-1}(x_i) = f(x_i) = L_i(x_i) L i − 1 ( x i ) = f ( x i ) = L i ( x i ) 。因此全局折线是连续的:L ∈ C 0 ( [ a , b ] ) L \in C^0([a, b]) L ∈ C 0 ([ a , b ]) 。但两侧的斜率 L i − 1 ′ L'_{i-1} L i − 1 ′ 与 L i ′ L'_i L i ′ 通常并不相等,接缝处保留着尖锐折角,故 L ∉ C 1 ( [ a , b ] ) L \notin C^1([a, b]) L ∈ / C 1 ([ a , b ]) 。
精确常数的一致误差上界
引理 子区间二次因式极值
设子区间 [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] 长度为 h i = x i + 1 − x i h_i = x_{i+1} - x_i h i = x i + 1 − x i 。定义在 [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] 上的二次多项式 q ( x ) = ( x − x i ) ( x i + 1 − x ) q(x) = (x - x_i)(x_{i+1} - x) q ( x ) = ( x − x i ) ( x i + 1 − x ) 满足
max x ∈ [ x i , x i + 1 ] ∣ ( x − x i ) ( x i + 1 − x ) ∣ = h i 2 4 , \max_{x \in [x_i, x_{i+1}]} |(x - x_i)(x_{i+1} - x)| = \frac{h_i^2}{4}, x ∈ [ x i , x i + 1 ] max ∣ ( x − x i ) ( x i + 1 − x ) ∣ = 4 h i 2 , 且该最大值在区间中点 x m = x i + x i + 1 2 x_m = \frac{x_i + x_{i+1}}{2} x m = 2 x i + x i + 1 处唯一取得。
证明
展开二次函数 q ( x ) = − x 2 + ( x i + x i + 1 ) x − x i x i + 1 q(x) = -x^2 + (x_i + x_{i+1})x - x_i x_{i+1} q ( x ) = − x 2 + ( x i + x i + 1 ) x − x i x i + 1 ,其导数为 q ′ ( x ) = − 2 x + ( x i + x i + 1 ) q'(x) = -2x + (x_i + x_{i+1}) q ′ ( x ) = − 2 x + ( x i + x i + 1 ) 。令导数归零,解出驻点位于中点:x m = ( x i + x i + 1 ) / 2 x_m = (x_i + x_{i+1})/2 x m = ( x i + x i + 1 ) /2 。
因为二阶导数 q ′ ′ ( x ) = − 2 < 0 q''(x) = -2 < 0 q ′′ ( x ) = − 2 < 0 ,函数图像为开口向下的抛物线,极大值即为最大值:
q ( x m ) = ( x m − x i ) ( x i + 1 − x m ) = ( h i 2 ) ( h i 2 ) = h i 2 4 . q(x_m) = (x_m - x_i)(x_{i+1} - x_m) = \left( \frac{h_i}{2} \right) \left( \frac{h_i}{2} \right) = \frac{h_i^2}{4}. q ( x m ) = ( x m − x i ) ( x i + 1 − x m ) = ( 2 h i ) ( 2 h i ) = 4 h i 2 . 而在两端点处 q ( x i ) = q ( x i + 1 ) = 0 q(x_i) = q(x_{i+1}) = 0 q ( x i ) = q ( x i + 1 ) = 0 ,因此该上界在整段子区间上严格成立。
定理 分段线性插值误差界
设 f ∈ C 2 ( [ a , b ] ) f \in C^2([a, b]) f ∈ C 2 ([ a , b ]) ,且最大步长为 h = max i ( x i + 1 − x i ) h = \max_i (x_{i+1} - x_i) h = max i ( x i + 1 − x i ) 。则全局误差满足:
max x ∈ [ a , b ] ∣ f ( x ) − L ( x ) ∣ ≤ h 2 8 max t ∈ [ a , b ] ∣ f ′ ′ ( t ) ∣ . \max_{x \in [a, b]} |f(x) - L(x)| \le \frac{h^2}{8} \max_{t \in [a, b]} |f''(t)|. x ∈ [ a , b ] max ∣ f ( x ) − L ( x ) ∣ ≤ 8 h 2 t ∈ [ a , b ] max ∣ f ′′ ( t ) ∣.
证明
在每个子区间 [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] 上,根据 Cauchy 插值误差公式,对每个 x ∈ [ x i , x i + 1 ] x \in [x_i, x_{i+1}] x ∈ [ x i , x i + 1 ] 均存在中间点 ξ x ∈ ( x i , x i + 1 ) \xi_x \in (x_i, x_{i+1}) ξ x ∈ ( x i , x i + 1 ) 满足
f ( x ) − L i ( x ) = f ′ ′ ( ξ x ) 2 ( x − x i ) ( x − x i + 1 ) . f(x) - L_i(x) = \frac{f''(\xi_x)}{2} (x - x_i)(x - x_{i+1}). f ( x ) − L i ( x ) = 2 f ′′ ( ξ x ) ( x − x i ) ( x − x i + 1 ) . 两边取绝对值并结合引理 1:
∣ f ( x ) − L i ( x ) ∣ ≤ 1 2 ( max t ∈ [ x i , x i + 1 ] ∣ f ′ ′ ( t ) ∣ ) ( h i 2 4 ) = h i 2 8 max t ∈ [ x i , x i + 1 ] ∣ f ′ ′ ( t ) ∣ . |f(x) - L_i(x)| \le \frac{1}{2} \left( \max_{t \in [x_i, x_{i+1}]} |f''(t)| \right) \left( \frac{h_i^2}{4} \right) = \frac{h_i^2}{8} \max_{t \in [x_i, x_{i+1}]} |f''(t)|. ∣ f ( x ) − L i ( x ) ∣ ≤ 2 1 ( t ∈ [ x i , x i + 1 ] max ∣ f ′′ ( t ) ∣ ) ( 4 h i 2 ) = 8 h i 2 t ∈ [ x i , x i + 1 ] max ∣ f ′′ ( t ) ∣. 在所有子区间 i = 0 , … , n − 1 i = 0, \dots, n-1 i = 0 , … , n − 1 上取最大值,即得全局一致估计。
如果直接对绝对值因式放缩 ∣ x − x i ∣ ≤ h i |x - x_i| \le h_i ∣ x − x i ∣ ≤ h i 和 ∣ x − x i + 1 ∣ ≤ h i |x - x_{i+1}| \le h_i ∣ x − x i + 1 ∣ ≤ h i ,得到的系数是较为粗糙的 1 / 2 1/2 1/2 。利用抛物线顶点性质,将领先常数收紧到 1 / 8 1/8 1/8 ,精度提升了 4 倍。其收敛速度为二阶:网格步长减半,最大误差缩小至四分之一。
分段二次插值
为了进一步提高逼近阶数,可以在每个子区间 [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] 上,除了两个端点外,额外采集子区间中点 m i = ( x i + x i + 1 ) / 2 m_i = (x_i + x_{i+1})/2 m i = ( x i + x i + 1 ) /2 处的函数值:
( x i , f ( x i ) ) , ( m i , f ( m i ) ) , ( x i + 1 , f ( x i + 1 ) ) . (x_i, f(x_i)), \quad (m_i, f(m_i)), \quad (x_{i+1}, f(x_{i+1})). ( x i , f ( x i )) , ( m i , f ( m i )) , ( x i + 1 , f ( x i + 1 )) .
在各个子区间内部,这是一个三节点二次 Lagrange 插值问题。若 f ∈ C 3 f \in C^3 f ∈ C 3 ,局部截断误差具备如下形式:
f ( x ) − Q i ( x ) = f ( 3 ) ( ξ ) 3 ! ( x − x i ) ( x − m i ) ( x − x i + 1 ) , f(x) - Q_i(x) = \frac{f^{(3)}(\xi)}{3!} (x - x_i)(x - m_i)(x - x_{i+1}), f ( x ) − Q i ( x ) = 3 ! f ( 3 ) ( ξ ) ( x − x i ) ( x − m i ) ( x − x i + 1 ) ,
收敛速度提升至三阶 O ( h i 3 ) \mathcal{O}(h_i^3) O ( h i 3 ) 。
然而,分段抛物线在相邻区间的交界节点 x i x_i x i 处仍然无法保证斜率吻合:Q i − 1 ′ ( x i ) ≠ Q i ′ ( x i ) Q'_{i-1}(x_i) \neq Q'_i(x_i) Q i − 1 ′ ( x i ) = Q i ′ ( x i ) 。曲线在节点处依旧存在肉眼可见的尖点与折光。
三次样条插值
为了彻底消除斜率与曲率的跳跃断裂,且无需盲目抬高多项式次数,我们引入三次样条插值 。
“样条(Spline)”原本是指造船和制图工人使用的一种富有弹性的细木条。绘图时用重铁压块(Ducks)将木条固定在若干特征点上,木条在弹性形变下自然弯曲,能量泛函取极小,从而在整条曲线上保持连续的二阶导数。
定义 三次样条插值函数
设剖分 a = x 0 < x 1 < ⋯ < x n = b a = x_0 < x_1 < \dots < x_n = b a = x 0 < x 1 < ⋯ < x n = b 。若函数 S ( x ) S(x) S ( x ) 满足如下条件,则称其为穿过数据点 ( x i , f ( x i ) ) (x_i, f(x_i)) ( x i , f ( x i )) 的三次样条插值函数 :
分段三次 :在每个子区间 [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] 上,S ( x ) = S i ( x ) S(x) = S_i(x) S ( x ) = S i ( x ) 为次数不超过 3 3 3 的多项式;
点值插值 :对每个节点均满足 S ( x i ) = f ( x i ) S(x_i) = f(x_i) S ( x i ) = f ( x i ) (i = 0 , 1 , … , n i = 0, 1, \dots, n i = 0 , 1 , … , n );
C 2 C^2 C 2 高度光滑 :函数自身 S ( x ) S(x) S ( x ) 、一阶导数 S ′ ( x ) S'(x) S ′ ( x ) 以及二阶导数 S ′ ′ ( x ) S''(x) S ′′ ( x ) 在整个区间 [ a , b ] [a, b] [ a , b ] 上处处连续。
约束核算与自由度守恒
核对三次样条多项式的待定系数与方程约束:
共有 n n n 个子区间,每个子区间是一条三次曲线 S i ( x ) = a i + b i x + c i x 2 + d i x 3 S_i(x) = a_i + b_i x + c_i x^2 + d_i x^3 S i ( x ) = a i + b i x + c i x 2 + d i x 3 ;
每段有 4 个待定未知数,总未知系数为 4 n 4n 4 n 个;
各段端点插值条件 :每段子区间的左右两个端点必须咬合给定数据点,共提供 2 n 2n 2 n 个方程;
内节点一阶导数连续 :在 n − 1 n-1 n − 1 个内部分界点处要求斜率衔接 S i − 1 ′ ( x i ) = S i ′ ( x i ) S'_{i-1}(x_i) = S'_i(x_i) S i − 1 ′ ( x i ) = S i ′ ( x i ) ,提供 n − 1 n-1 n − 1 个方程;
内节点二阶导数连续 :在 n − 1 n-1 n − 1 个内部分界点处要求曲率衔接 S i − 1 ′ ′ ( x i ) = S i ′ ′ ( x i ) S''_{i-1}(x_i) = S''_i(x_i) S i − 1 ′′ ( x i ) = S i ′′ ( x i ) ,提供 n − 1 n-1 n − 1 个方程。
将所有内部约束相加:
2 n + ( n − 1 ) + ( n − 1 ) = 4 n − 2. 2n + (n - 1) + (n - 1) = 4n - 2. 2 n + ( n − 1 ) + ( n − 1 ) = 4 n − 2.
比较未知数与约束数:
4 n − ( 4 n − 2 ) = 2 个剩余自由度。 4n - (4n - 2) = 2 \text{ 个剩余自由度}。 4 n − ( 4 n − 2 ) = 2 个剩余自由度 。
为了使三次样条方程组具备唯一解,必须额外指定且仅指定两个边界条件 。
样条边界条件分类
在数值分析中,最常用的三种边界处理方案为:
定义 常用三次样条边界条件
自然边界条件(Natural / Free Boundary) :
S ′ ′ ( x 0 ) = 0 且 S ′ ′ ( x n ) = 0. S''(x_0) = 0 \quad \text{且} \quad S''(x_n) = 0. S ′′ ( x 0 ) = 0 且 S ′′ ( x n ) = 0. 强制曲线在两端点处的二阶导数归零,几何形态等价于两端自由伸展的弹性薄板。
2. 固支边界条件(Clamped / Complete Boundary) :
S ′ ( x 0 ) = f ′ ( x 0 ) 且 S ′ ( x n ) = f ′ ( x n ) . S'(x_0) = f'(x_0) \quad \text{且} \quad S'(x_n) = f'(x_n). S ′ ( x 0 ) = f ′ ( x 0 ) 且 S ′ ( x n ) = f ′ ( x n ) . 直接锁定两端点的切线斜率,使其精准对齐真实函数的一阶导数。
3. 非节点边界条件(Not-a-knot Boundary) :
S ′ ′ ′ ( x ) 在 x 1 与 x n − 1 处连续。 S'''(x) \text{ 在 } x_1 \text{ 与 } x_{n-1} \text{ 处连续}。 S ′′′ ( x ) 在 x 1 与 x n − 1 处连续 。 这迫使第一段与第二段合为同一个三次多项式,最后两段也合为同一个三次多项式,使内部首尾节点不再是分段断点(要求 n ≥ 3 n \ge 3 n ≥ 3 )。
精度核验:自然边界的曲率失配陷阱
教材中常笼统提及三次样条具备四阶一致收敛率 O ( h 4 ) \mathcal{O}(h^4) O ( h 4 ) 。需要注意:该结论对固支边界和非节点边界严格成立,但对自然边界存在适用前提 。
对于 f ∈ C 4 ( [ a , b ] ) f \in C^4([a, b]) f ∈ C 4 ([ a , b ]) ,固支边界能够确保误差被四阶导数控制:
max x ∈ [ a , b ] ∣ f ( x ) − S ( x ) ∣ ≤ C h 4 max t ∈ [ a , b ] ∣ f ( 4 ) ( t ) ∣ . \max_{x \in [a, b]} |f(x) - S(x)| \le C h^4 \max_{t \in [a, b]} |f^{(4)}(t)|. x ∈ [ a , b ] max ∣ f ( x ) − S ( x ) ∣ ≤ C h 4 t ∈ [ a , b ] max ∣ f ( 4 ) ( t ) ∣.
然而,自然边界条件强制了 S ′ ′ ( a ) = S ′ ′ ( b ) = 0 S''(a) = S''(b) = 0 S ′′ ( a ) = S ′′ ( b ) = 0 。如果待逼近的原函数在端点处原本具有非零曲率(f ′ ′ ( a ) ≠ 0 f''(a) \neq 0 f ′′ ( a ) = 0 或 f ′ ′ ( b ) ≠ 0 f''(b) \neq 0 f ′′ ( b ) = 0 ),边界处就会发生强制曲率失配。
以二次函数 f ( x ) = x 2 f(x) = x^2 f ( x ) = x 2 为例,其四阶导数恒等于零 f ( 4 ) ≡ 0 f^{(4)} \equiv 0 f ( 4 ) ≡ 0 。但自然样条在边界处被强制赋予二阶导数为 0(而真实函数二阶导数为 2),导致样条根本无法精确复原 x 2 x^2 x 2 。在此类曲率不兼容的情况下,自然样条的全局收敛率会退化为二阶:
max x ∈ [ a , b ] ∣ f ( x ) − S natural ( x ) ∣ = O ( h 2 ) . \max_{x \in [a, b]} |f(x) - S_{\text{natural}}(x)| = \mathcal{O}(h^2). x ∈ [ a , b ] max ∣ f ( x ) − S natural ( x ) ∣ = O ( h 2 ) .
只有当原函数在边界处恰好自然满足 f ′ ′ ( a ) = f ′ ′ ( b ) = 0 f''(a) = f''(b) = 0 f ′′ ( a ) = f ′′ ( b ) = 0 时,自然样条的四阶收敛速度方能得以恢复。
三弯矩方程组与三对角快速求解
若直接将 4 n 4n 4 n 个多项式多项式系数代入联立方程组,规模庞大且计算低效。在数值计算中,通常以各节点处的二阶导数(弯矩)作为核心未知数:
M i = S ′ ′ ( x i ) , i = 0 , 1 , … , n . M_i = S''(x_i), \quad i = 0, 1, \dots, n. M i = S ′′ ( x i ) , i = 0 , 1 , … , n .
由于每段 S i ( x ) S_i(x) S i ( x ) 是三次多项式,其二阶导数 S i ′ ′ ( x ) S''_i(x) S i ′′ ( x ) 在区间 [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] 上必然是线性函数。利用线性插值公式:
S i ′ ′ ( x ) = M i x i + 1 − x h i + M i + 1 x − x i h i , h i = x i + 1 − x i . S''_i(x) = M_i \frac{x_{i+1} - x}{h_i} + M_{i+1} \frac{x - x_i}{h_i}, \quad h_i = x_{i+1} - x_i. S i ′′ ( x ) = M i h i x i + 1 − x + M i + 1 h i x − x i , h i = x i + 1 − x i .
将 S i ′ ′ ( x ) S''_i(x) S i ′′ ( x ) 连续两次积分,并代入端点值条件 S i ( x i ) = y i S_i(x_i) = y_i S i ( x i ) = y i 和 S i ( x i + 1 ) = y i + 1 S_i(x_{i+1}) = y_{i+1} S i ( x i + 1 ) = y i + 1 ,可以直接写出样条解析式:
S i ( x ) = M i ( x i + 1 − x ) 3 6 h i + M i + 1 ( x − x i ) 3 6 h i + ( y i − M i h i 2 6 ) x i + 1 − x h i + ( y i + 1 − M i + 1 h i 2 6 ) x − x i h i . S_i(x) = M_i \frac{(x_{i+1} - x)^3}{6 h_i} + M_{i+1} \frac{(x - x_i)^3}{6 h_i} + \left( y_i - \frac{M_i h_i^2}{6} \right) \frac{x_{i+1} - x}{h_i} + \left( y_{i+1} - \frac{M_{i+1} h_i^2}{6} \right) \frac{x - x_i}{h_i}. S i ( x ) = M i 6 h i ( x i + 1 − x ) 3 + M i + 1 6 h i ( x − x i ) 3 + ( y i − 6 M i h i 2 ) h i x i + 1 − x + ( y i + 1 − 6 M i + 1 h i 2 ) h i x − x i .
这一构造天然满足了数值插值与二阶导数连续性。接下来,只需强制一阶导数在各个内节点处光滑衔接:
S i − 1 ′ ( x i ) = S i ′ ( x i ) , i = 1 , 2 , … , n − 1. S'_{i-1}(x_i) = S'_i(x_i), \quad i = 1, 2, \dots, n - 1. S i − 1 ′ ( x i ) = S i ′ ( x i ) , i = 1 , 2 , … , n − 1.
对 S i ( x ) S_i(x) S i ( x ) 求导并令两侧导数相等,整理即得经典的三弯矩方程组:
定理 三对角样条方程组(三弯矩方程)
对每个内部节点 i = 1 , 2 , … , n − 1 i = 1, 2, \dots, n - 1 i = 1 , 2 , … , n − 1 ,二阶导数序列 M i = S ′ ′ ( x i ) M_i = S''(x_i) M i = S ′′ ( x i ) 满足:
h i − 1 M i − 1 + 2 ( h i − 1 + h i ) M i + h i M i + 1 = 6 ( y i + 1 − y i h i − y i − y i − 1 h i − 1 ) . h_{i-1} M_{i-1} + 2(h_{i-1} + h_i) M_i + h_i M_{i+1} = 6 \left( \frac{y_{i+1} - y_i}{h_i} - \frac{y_i - y_{i-1}}{h_{i-1}} \right). h i − 1 M i − 1 + 2 ( h i − 1 + h i ) M i + h i M i + 1 = 6 ( h i y i + 1 − y i − h i − 1 y i − y i − 1 ) .
在自然边界条件下,由于 M 0 = M n = 0 M_0 = M_n = 0 M 0 = M n = 0 ,上式构成关于内部未知量 M 1 , … , M n − 1 M_1, \dots, M_{n-1} M 1 , … , M n − 1 的 ( n − 1 ) × ( n − 1 ) (n-1) \times (n-1) ( n − 1 ) × ( n − 1 ) 阶线性方程组:
[ 2 ( h 0 + h 1 ) h 1 0 … 0 h 1 2 ( h 1 + h 2 ) h 2 … 0 0 h 2 2 ( h 2 + h 3 ) … 0 ⋮ ⋱ ⋱ ⋮ 0 … 0 h n − 2 2 ( h n − 2 + h n − 1 ) ] [ M 1 M 2 M 3 ⋮ M n − 1 ] = [ d 1 d 2 d 3 ⋮ d n − 1 ] . \begin{bmatrix}
2(h_0 + h_1) & h_1 & 0 & \dots & 0 \\
h_1 & 2(h_1 + h_2) & h_2 & \dots & 0 \\
0 & h_2 & 2(h_2 + h_3) & \dots & 0 \\
\vdots & & \ddots & \ddots & \vdots \\
0 & \dots & 0 & h_{n-2} & 2(h_{n-2} + h_{n-1})
\end{bmatrix}
\begin{bmatrix}
M_1 \\ M_2 \\ M_3 \\ \vdots \\ M_{n-1}
\end{bmatrix}
=
\begin{bmatrix}
d_1 \\ d_2 \\ d_3 \\ \vdots \\ d_{n-1}
\end{bmatrix}. 2 ( h 0 + h 1 ) h 1 0 ⋮ 0 h 1 2 ( h 1 + h 2 ) h 2 … 0 h 2 2 ( h 2 + h 3 ) ⋱ 0 … … … ⋱ h n − 2 0 0 0 ⋮ 2 ( h n − 2 + h n − 1 ) M 1 M 2 M 3 ⋮ M n − 1 = d 1 d 2 d 3 ⋮ d n − 1 .
观察系数矩阵的每一行:
2 ( h i − 1 + h i ) > h i − 1 + h i . 2(h_{i-1} + h_i) > h_{i-1} + h_i. 2 ( h i − 1 + h i ) > h i − 1 + h i .
主对角线元素严格大于非对角元素绝对值之和,矩阵满足严格对角占优 ,且对称正定。由 Gershgorin 圆盘定理可知,该矩阵必然非奇异且条件数良好。
利用专门针对三对角矩阵的 Thomas 追赶法 (Tridiagonal Gaussian Elimination),可以在严格的 O ( n ) \mathcal{O}(n) O ( n ) 时间复杂度与 O ( n ) \mathcal{O}(n) O ( n ) 空间内完成求解。
这个交互图需要启用 JavaScript。
插值方法综合决策对比
至此,我们已经建立了完整的插值知识谱系:
插值方法 所需输入数据 多项式次数 全局光滑度 误差收敛速度 局部敏感性与稳定性 Lagrange / Newton 离散采样值 f ( x i ) f(x_i) f ( x i ) n n n (全局)C ∞ C^\infty C ∞ 视情况而定(等距网格易发散) 全局刚性 :单点扰动影响全域波形Chebyshev 插值 Chebyshev 根采样值 n n n (全局)C ∞ C^\infty C ∞ 解析函数下呈几何级快速收敛 全局刚性 :需要自由决定节点位置Hermite 插值 采样值 f ( x i ) f(x_i) f ( x i ) 与导数 f ′ ( x i ) f'(x_i) f ′ ( x i ) 2 n + 1 2n + 1 2 n + 1 (全局)C ∞ C^\infty C ∞ 局部误差 O ( h 2 n + 2 ) \mathcal{O}(h^{2n+2}) O ( h 2 n + 2 ) 全局刚性 :锁定切线但全局阶数剧增分段线性插值 离散采样值 f ( x i ) f(x_i) f ( x i ) 1 1 1 (局部)C 0 C^0 C 0 O ( h 2 ) \mathcal{O}(h^2) O ( h 2 ) ,精确常数为 1 / 8 1/8 1/8 严格局部 :扰动仅波及相邻两个分段分段二次插值 采样值及区间中点值 2 2 2 (局部)C 0 C^0 C 0 O ( h 3 ) \mathcal{O}(h^3) O ( h 3 ) 严格局部 :接缝处仍有明显折角固支三次样条 采样值及两端切线斜率 3 3 3 (局部段)C 2 C^2 C 2 全局一致 O ( h 4 ) \mathcal{O}(h^4) O ( h 4 ) 四阶收敛 局部指数衰减 :扰动随距离快速衰减自然三次样条 采样值及 S ′ ′ ( a ) = S ′ ′ ( b ) = 0 S''(a)=S''(b)=0 S ′′ ( a ) = S ′′ ( b ) = 0 3 3 3 (局部段)C 2 C^2 C 2 曲率失配时为 O ( h 2 ) \mathcal{O}(h^2) O ( h 2 ) ,否则四阶 局部指数衰减 :端点无曲率弯矩
三次样条打破了全局高次多项式的垄断,在 C 2 C^2 C 2 的优异光滑度、线性的 O ( n ) \mathcal{O}(n) O ( n ) 求解效率以及稳健的局部控制之间取得了平衡,成为工业造型、航迹规划与科学仿真的黄金标准。
参考文献
[1] R. L. Burden and J. D. Faires, Numerical Analysis , 9th ed. Brooks/Cole, Cengage Learning, 2011. a b
[2] M. U. School of Mathematics, “MTH2051: Introduction to Computational Mathematics: Course Lecture Notes and Study Workbooks,” 2026. Monash University course materials and study workbooks, Semester 2, 2026. ↩
评论