当前位置:
文档之家› 第五章 三次样条插值Spline
第五章 三次样条插值Spline
0 M 0 6 1 2 2 1 2 0 M 1 3 0 1 2 2 1 2 M 36 2 0 M 78 0 1 2 3 1 0
Sketch of the Algorithm: Cubic Spline
①
② 计算 M (追赶法等) ; 计算 αi , γi , βi ; i ③ 找到 x 所在区间 ( 即找到相应的 i ) ; ④ 由该区间上的 S(x) 算出 f(x) 的近似值。
Cubic Spline
例
由函数表 i 0 xi 0 0 yi
共有 4n 个待定参数。S(x) 在[a, b]上二阶导数连续,故在内 结点 xi (i 1, 2,, n -1) 处应满足连续性条件
S
k
xi 0 S k ( xi 0),
k 0,1, 2,
共有 3(n-1) 个条件。再加上 n+1 个插值条件,共有4n-2 个 条件。因此,还需要2个条件才能确定S(x)。通常在区间 端点 a = x0 和 b = xn 上各加一个条件(称为边界条件), 可根据实际问题的要求给定。
此时,对函数值有周期条件 f ( x0 ) f ( xn ).
Cubic Spline由边界条件唯一确定。
定理 三次样条插值问题的解存在且唯一。
Cubic Spline
三弯矩法
/* method of bending moment */
三次样条插值函数 S(x) 可以有多种表达式,有时用二阶 导数值 S( xi ) Mi (i 0,1,, n) 表示时,使用更方便。Mi 在 力学上解释为细梁在 xi 处的弯矩,并且得到的弯矩与相邻两 个弯矩有关,故称用 Mi 表示 S(x) 的算法称为三弯矩法。 由于S(x) 在区间 [ xi 1 , xi ] (i 1, 2,, n) 上是3 次多项式, 故 S (x) 在 [ xi 1 , xi ]上是 1 次多项式, 可表示为
Cubic Spline
常用边界条件 /* boundary conditions */
(1)已知两端的二阶导数值,即
Mn . S( x0 ) f0 M0 , S ( xn ) f n
(I 类)
其特殊情况为
S ( x0 ) 0, S ( xn ) 0,
f
5
(k )
( x) S ( x) C
1
(k )
kh
4 k
M , k 0,1,2
4
其中 C 0 384 , Cቤተ መጻሕፍቲ ባይዱ1 24 , C 2 8 .
1
Cubic Spline
注:提高精度只须增加节点,而无须提高样条阶数。
在实际应用中,不仅常用S(x) [ (3.1)式]计算 f(x)
M n 1 2 M n 6 hn
类似
yn yn 1 m n n ( n 1) hn
Cubic Spline
三次样条插值函数的误差估计
在实际应用中,如果不需要规定内节点处的一阶导 数值,那么使用三次样条插值函数会得到很好的效果。 三次样条插值函数 S(x) 不仅在内节点处的二阶导数是连 续的,而且 S(x) 逼近 f(x) 具有很好的收敛性,也是数值 稳定的。由于误差估计与收敛性定理的证明比较复杂, 下面只给出误差估计的结论。
对于I 类边界条件,S( x0 ) M0 , S( xn ) Mn
2 M 0 0 M1 0 n M n1 2 M n n
0 0, 0 2 M 0 n 0, n 2 M n
Cubic Spline
即得关于Mi (i = 0, 1, …, n)的 n+1 元线性方程组
hi 1 hi , i 1 i 其中 i , hi hi 1 hi hi 1
6 yi 1 yi yi yi 1 i 6 f [ xi 1 , xi , xi 1 ] hi hi 1 hi 1 hi
这里有 n+1 个未知数, n1 个方程,还需增加 2 个方程。
f(x) H( x ) S( x )
Cubic Spline
三次样条插值函数 S(x) 是否存在唯一? 如何计算?误差估计? 三次样条插值函数是分段三次多项式,在每个小区间 [ x i , x i 1] 上可以写成
S( x) ai x3 bi x 2 ci x di , i 0,1,, n 1,
(自由边界)
对应的样条函数称为自然样条 /* Natural Spline */.
(2)已知两端的一阶导数值,即 mn . S( x0 ) f0 m0 , S( xn ) fn (3)周期边界条件
(II类)
(III 类)
S k ( x0 ) S k ( xn ), k 0,1, 2.
i
hi hi yi yi 1 M i 1 M i 6 3 hi
( xi 1 xi )2 ( xi xi )2 yi 1 yi hi 1 S ( x ) Mi M i 1 M i 1 M i 2hi 1 2hi 1 hi 1 6
i 1, 2,, n 1
Cubic Spline
hi hi yi yi 1 h h y y M i 1 M i i 1 M i i 1 M i 1 i 1 i 6 3 hi 3 6 hi 1
可得关于参数 Mi 的方程组,即三弯矩方程的形式为
i Mi 1 2Mi i Mi 1 i , i 1,2,, n 1
x [ xi 1 , xi ], i 1, 2,, n
这是三次样条插值函数的表达式,当求出Mi 后, S(x)就完全确定.
为了求 Mi ,需要利用S(x)在内结点处一阶导数连续的条件, 由上式可得
( xi x )2 ( x xi 1 )2 yi yi 1 hi S ( x ) M i 1 Mi M i M i 1 (3.2) 2hi 2hi hi 6
§3 三次样条插值
背景 代数插值 Hermite插值
/* Cubic Spline Interpolation */
高次插值出现龙格现象
分段插值 在节点处不一定光滑
分段Hermite插值 导数值不容易得到
三次样条插值(先由函数值确定导数值,再由分段 Hermite插值解决问题) 应用最为广泛
hi 1 yi 1 yi hi 1 hi 1 hi 1 yi 1 yi Mi M i 1 M i Mi M i 1 2 hi 1 6 3 6 hi 1
由 S(x) 在内结点处一阶导数连续,即
S ( xi ) S ( xi )
4 定理 定理 5.5 设函数 f ( x) C [a, b], 记 M 4 max f ( 4) ( x ) ,
h max ( xi 1 xi ), 则 x [a, b], 满足 I 类或 II 类边界条件的 0 i n 1
a xb
三次样条插值函数 S(x) 有估计式
其系数矩阵按行严格对角占优,故有唯一解. 可用追赶法求解. 对于II 类边界条件,S( x0 ) m0 , S( xn ) mn 利用(3.2)式, S ( x0 )
y1 y0 h1 h1 M 0 M1 m0 3 6 h1 6 y1 y0 2 M 0 M1 m0 0 ( 0 1) h1 h1
Lagrange插 值
Cubic Spline
利用插值条件
S ( xi 1 ) yi 1 , S ( xi ) yi
定出积分常数,可以得到
( xi x ) 3 ( x x i 1 )3 S ( x ) M i 1 Mi 6hi 6hi yi 1 M i 1hi 6 hi yi M i hi ( xi x ) 6 hi (3.1) ( x xi 1 )
如:汽车、船的外形设计,流体力学等要求流线型(光滑)
木样条的来源
样条是绘图员用于描绘光滑曲线的由一些易弯曲材料制成的 窄条。在绘制需要通过某点的光滑曲线时 ,对它在这些点的位置 上‚压铁‛,它就被强制通过或接近图表上确定的描绘点。‚样 条函数‛意在点出这种函数的图像与机械样条画出的曲线很像。
Cubic Spline
S ( x ) x xi x x i 1 M i 1 Mi , hi hi
其中 hi = xi – xi-1 . 对S (x) 积分两次得
( xi x )3 ( x xi 1 )3 S ( x ) M i 1 Mi C1 x C2 6hi 6hi
三次样条插值问题
定义 设 a x0 x1 ... xn b 。三次样条函数 S( x) C
2
[a, b]
,
且在每个[ xi , xi 1 ]上为三次多项式 /* cubic polynomial */。若它同
时还满足 S( xi ) f ( xi ), (i 0,1,, n) ,则称 S(x) 为 f(x) 在结点 xi ( i = 0, 1, …, n) 上的三次样条插值函数 . 注:三次样条与分段 Hermite 插值的根本区别在于S(x)自 身光滑,不需要知道 f 的导数值(除了在2个端点可能需 要);而Hermite插值依赖于f 在所有插值点的导数值。
x [ xi 1 , xi ], i 1, 2,, n
S ( x ) M i 1
( xi x ) ( x xi 1 ) yi yi 1 h Mi M i M i 1 i (3.2) 2hi 2hi hi 6