插值
目录
1 多项式插值 3
2 Lagrange 插值 3
2.1 两点插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 多点插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 误差事后估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Newton 插值 5
3.1 差商 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Newton 插值公式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Hermit 插值 8
4.1 密切插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2 最简单的 Hermite 插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3 一般的 Hermite 插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.4 Newton 插值到 Hermite 插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 样条插值 11
5.1 三次样条插值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 二阶导数表示的三次样条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2.1 自然边界条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2.2 固支边界条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1
5.2.3 周期边界条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 一阶导数表示的三次样条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.4 B 样条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4.1 0 B 样条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4.2 1 B 样条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4.3 k B 样条 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6 参考资料 16
1 多项式插值
Weierstrass 定理表明, 意连续函数 𝑓 (𝑥) 在闭区间 [𝑎, 𝑏] 都可以用多项式无限逼近. 函数可以被多项
式展开 (Taylor 展开)
𝑓 (𝑥) = 𝑓 (𝑥
0
) + 𝑓
(𝑥
0
)(𝑥 𝑥
0
) +
𝑓
′′
(𝑥
0
)
2!
(𝑥 𝑥
0
)
2
+ ... +
𝑓
(𝑛)
(𝑥
0
)
𝑛!
(𝑥 𝑥
0
)
𝑛
它的误差为
𝑅
𝑛
(𝑥) = 𝑓 (𝑥) 𝑃
𝑛
(𝑥) =
𝑓
(𝑛+1)
(𝜉)
(𝑛 + 1)!
(𝑥 𝑥
0
)
𝑛+1
但是 Taylor 多项式在偏离 𝑥
0
时误差较大, 不满足要求, 希望找到在有限区间能以较小误差逼近的多项式
2 Lagrange 插值
2.1 两点插值
考虑两个点的插值. (𝑥
0
, 𝑦
0
), (𝑥
1
, 𝑦
1
) 是两个点, 希望找到一个一次多项式 𝑝 (𝑥) 使得
𝑝(𝑥
0
) = 𝑦
0
, 𝑝(𝑥
1
) = 𝑦
1
即求解方程组
𝑎
0
𝑥
0
+ 𝑎
1
𝑥
1
= 𝑦
0
𝑎
0
𝑥
1
+ 𝑎
1
𝑥
1
= 𝑦
1
解得
𝑎
0
=
𝑦
1
𝑦
0
𝑥
1
𝑥
0
, 𝑎
1
=
𝑦
0
𝑥
1
𝑦
1
𝑥
0
𝑥
1
𝑥
0
P
1
线性空间的基不唯一, 不妨
𝑝(𝑥) = 𝛽
0
𝑙
0
(𝑥) + 𝛽
1
𝑙
1
(𝑥)
它满足
𝑝(𝑥
0
) = 𝛽
0
𝑙
0
(𝑥
0
) + 𝛽
1
𝑙
1
(𝑥
0
) = 𝑦
0
𝑝(𝑥
1
) = 𝛽
0
𝑙
0
(𝑥
1
) + 𝛽
1
𝑙
1
(𝑥
1
) = 𝑦
1
不妨取
𝛽
0
= 𝑦
0
, 𝑙
0
(𝑥
0
) = 1, 𝑙
1
(𝑥
0
) = 0
𝛽
1
= 𝑦
1
, 𝑙
0
(𝑥
1
) = 0, 𝑙
1
(𝑥
1
) = 1
那么 𝑙
0
, 𝑙
1
显然就是
𝑙
0
(𝑥) =
𝑥 𝑥
1
𝑥
0
𝑥
1
, 𝑙
1
(𝑥) =
𝑥 𝑥
0
𝑥
1
𝑥
0
它们称为 Lagrange 插值基函数
2.2 多点插值
考虑一般情况, (𝑥
0
, 𝑦
0
), (𝑥
1
, 𝑦
1
), ..., (𝑥
𝑛
, 𝑦
𝑛
) 𝑛 + 1 个点, 希望找到一个 𝑛 次多项式 𝑝(𝑥) 使得
𝑝(𝑥
𝑖
) = 𝑦
𝑖
同样可以选取 P
𝑛
线性空间的基
𝑝(𝑥) = 𝛽
0
𝑙
0
(𝑥) + 𝛽
1
𝑙
1
(𝑥) + ... + 𝛽
𝑛
𝑙
𝑛
(𝑥)
它们满足
𝑙
𝑘
(𝑥
𝑘
) = 1
𝑙
𝑘
(𝑥
𝑖
) = 0 𝑖 𝑘
它的形式也是显然的
𝑙
𝑘
(𝑥) =
𝑛
Ö
𝑖=0,𝑖 𝑘
𝑥 𝑥
𝑖
𝑥
𝑘
𝑥
𝑖
组合系数显然就是
𝛽
𝑘
= 𝑦
𝑘
由于上面的线性方程组的解唯一, 该多项式满足方程, 因而这样的多项式是唯一的.
考虑它的插值误差 𝑅
𝑛
(𝑥)
𝑅
𝑛
(𝑥) = 𝑓 (𝑥) 𝑃
𝑛
(𝑥)
显然已知具有 𝑛 + 1 个零点 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
, 那么可以写成
𝑅
𝑛
(𝑥) = 𝑔(𝑡)(𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛
)
其中 𝑔(𝑡) 是一个可变的系数. 为了求出 𝑔(𝑡), 考虑构造
(𝑥) = 𝑓 (𝑥) 𝑃
𝑛
(𝑥) 𝑔(𝑡)(𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛
)
显然它有 𝑛 + 2 个零点 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
, 𝑡, 暂且抛开 𝑡 不谈, 利用 Rolle 中值定理, (𝑥
0
, 𝑥
1
), ..., (𝑥
𝑛1
, 𝑥
𝑛
) 都存
在至少一个
(𝑥) 的零点. 重复该过程, (𝑥
0
, 𝑥
𝑛
) 上至少存在一个点使得
(𝑛+1)
(𝑥) = 0,
𝑓
(𝑛+1)
(𝜉) 𝑃
(𝑛+1)
𝑛
(
𝜉
)
𝑔
(
𝑡
)(
𝑛
+
1
)
!
=
0
, 𝜉
(
𝑥
0
, 𝑥
𝑛
)
𝑃
𝑛
(𝑥) 𝑛 次多项式, 𝑛 + 1 阶导数为 0, 那么
𝑔(𝑡) =
𝑓
(𝑛+1)
(𝜉)
(𝑛 + 1)!
, 𝜉 (𝑥
0
, 𝑥
𝑛
)
即得到了
𝑅
𝑛
(𝑥) =
𝑓
(𝑛+1)
(𝜉)
(𝑛 + 1)!
𝑛
Ö
𝑖=0
(𝑥 𝑥
𝑖
)
2.3 误差事后估计
设在 𝑛 +1 阶连续函数 𝑓 上取 𝑛 + 2 个点,𝑝(𝑥) 是通过 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
的插值多项式,
˜
𝑝(𝑥) 是通过 𝑥
1
, 𝑥
1
, ..., 𝑥
𝑛+1
的插值多项式, 则有
𝑓 (𝑥) 𝑝(𝑥) =
𝑥 𝑥
𝑛+1
𝑥 𝑥
0
[
𝑝(𝑥)
˜
𝑝(𝑥)
]
由误差公式
𝑓 (𝑥) 𝑝(𝑥) =
𝑓
(𝑛+1)
(𝜉)
(𝑛 + 1)!
𝑛
Ö
𝑖=0
(𝑥 𝑥
𝑖
)
𝑓 (𝑥)
˜
𝑝(𝑥) =
𝑓
(𝑛+1)
(𝜂)
(𝑛 + 1)!
𝑛+1
Ö
𝑖=1
(𝑥 𝑥
𝑖
)
对其做商, 得到
𝑓 (𝑥) 𝑝(𝑥)
𝑓 (𝑥)
˜
𝑝(𝑥)
=
𝑓
(𝑛+1)
(𝜉)
𝑓
(𝑛+1)
(𝜂)
𝑥 𝑥
0
𝑥 𝑥
𝑛+1
认为 𝑓 是缓变的, 那么
𝑓
(𝑛+1)
(𝜉)
𝑓
(𝑛+1)
(𝜂)
1, 那么
𝑓 (𝑥) 𝑝(𝑥)
𝑓 (𝑥)
˜
𝑝(𝑥)
𝑥 𝑥
0
𝑥 𝑥
𝑛+1
3 Newton 插值
拉格朗日插值多项式没有继承性. 希望有一个新的插值函数 𝑁
𝑛
(𝑥), 定义为
𝑁
𝑛
(𝑥) = 𝑎
0
+ 𝑎
1
(𝑥 𝑥
0
) + 𝑎
2
(𝑥 𝑥
0
)(𝑥 𝑥
1
) + · · · + 𝑎
𝑛
(𝑥 𝑥
0
)(𝑥 𝑥
1
) · · · (𝑥 𝑥
𝑛
1
)
这样添加点 𝑥
𝑛
, 就有
𝑁
𝑛+1
(𝑥) = 𝑁
𝑛
(𝑥) + 𝑎
𝑛+1
(𝑥 𝑥
0
)(𝑥 𝑥
1
) · · · (𝑥 𝑥
𝑛
)
可以继承式地添加点. 接下来需要确定系数 𝑎
𝑖
. 有的条件是
𝑁
𝑛
(𝑥
𝑖
) = 𝑓 (𝑥
𝑖
), 𝑖 = 0, 1, ..., 𝑛
为了确定 𝑎
𝑖
, 需要构造差商
3.1 差商
差商是递归地定义的
𝑓 [𝑥
0
, 𝑥
1
, · · · , 𝑥
𝑘
] =
𝑓 [𝑥
1
, 𝑥
2
, ..., 𝑥
𝑘
] 𝑓 [𝑥
0
, 𝑥
1
, ..., 𝑥
𝑘1
]
𝑥
𝑘
𝑥
0
定义一阶差商
𝑓 [𝑥
𝑖
] = 𝑓 (𝑥
𝑖
)
那么它可以有展开形式
𝑓 [𝑥
0
, 𝑥
1
, · · · , 𝑥
𝑘
] =
𝑘
Õ
𝑖=0
𝑓 (𝑥
𝑖
)
Î
𝑘
𝑗=0, 𝑗𝑖
(𝑥
𝑖
𝑥
𝑗
)
这可以简单地由归纳法证明. 假设
𝑓 [𝑥
0
, 𝑥
1
, · · · , 𝑥
𝑘
] =
𝑘
Õ
𝑖=0
𝑓 (𝑥
𝑖
)
Î
𝑘
𝑗=0, 𝑗𝑖
(𝑥
𝑖
𝑥
𝑗
)
, 𝑓 [𝑥
1
, 𝑥
2
, · · · , 𝑥
𝑘+1
] =
𝑘+1
Õ
𝑖=1
𝑓 (𝑥
𝑖
)
Î
𝑘+1
𝑗=1, 𝑗𝑖
(𝑥
𝑖
𝑥
𝑗
)
为了简单起见, 不妨对其进行变形
𝑓 [𝑥
0
, 𝑥
1
, · · · , 𝑥
𝑘
] =
𝑘
Õ
𝑖=0
(𝑥
𝑖
𝑥
𝑖
) 𝑓 (𝑥
𝑖
)(𝑥
𝑖
𝑥
𝑘
+
1
)
Î
𝑘+1
𝑗=0
(𝑥
𝑖
𝑥
𝑗
)
, 𝑓 [𝑥
1
, 𝑥
2
, · · · , 𝑥
𝑘+1
] =
𝑘+1
Õ
𝑖=1
(𝑥
𝑖
𝑥
𝑖
) 𝑓 (𝑥
𝑖
)(𝑥
𝑖
𝑥
0
)
Î
𝑘+1
𝑗=0
(𝑥
𝑖
𝑥
𝑗
)
按照定义,
𝑓 [𝑥
0
, 𝑥
1
, · · · , 𝑥
𝑘+1
] =
𝑓 [𝑥
1
, 𝑥
2
, · · · , 𝑥
𝑘+1
] 𝑓 [𝑥
0
, 𝑥
1
, · · · , 𝑥
𝑘
]
𝑥
𝑘+1
𝑥
0
=
1
𝑥
𝑘+1
𝑥
0
"
𝑘+1
Õ
𝑖=1
(𝑥
𝑖
𝑥
𝑖
) 𝑓 (𝑥
𝑖
)(𝑥
𝑖
𝑥
0
)
Î
𝑘+1
𝑗=0
(𝑥
𝑖
𝑥
𝑗
)
𝑘
Õ
𝑖=0
(𝑥
𝑖
𝑥
𝑖
) 𝑓 (𝑥
𝑖
)(𝑥
𝑖
𝑥
𝑘+1
)
Î
𝑘+1
𝑗=0
(𝑥
𝑖
𝑥
𝑗
)
#
中括号中的部分可以拆出共同的求和部分
𝑘
Õ
𝑖=1
(𝑥
𝑖
𝑥
𝑖
) 𝑓 (𝑥
𝑖
)[(𝑥
𝑖
𝑥
0
) (𝑥
𝑖
𝑥
𝑘+1
)]
Î
𝑘+1
𝑗=0
(𝑥
𝑖
𝑥
𝑗
)
+
(𝑥
𝑘+1
𝑥
𝑘+1
) 𝑓 (𝑥
𝑘+1
)(𝑥
𝑘+1
𝑥
0
)
Î
𝑘+1
𝑗=0
(𝑥
𝑘+1
𝑥
𝑗
)
(𝑥
0
𝑥
0
) 𝑓 (𝑥
0
)(𝑥
0
𝑥
𝑘+1
)
Î
𝑘+1
𝑗=0
(𝑥
0
𝑥
𝑗
)
=
𝑘
Õ
𝑖=1
(𝑥
𝑖
𝑥
𝑖
) 𝑓 (𝑥
𝑖
)(𝑥
𝑘+1
𝑥
0
)
Î
𝑘+1
𝑗=0
(𝑥
𝑖
𝑥
𝑗
)
+
(𝑥
𝑘+1
𝑥
𝑘+1
) 𝑓 (𝑥
𝑘+1
)(𝑥
𝑘+1
𝑥
0
)
Î
𝑘+1
𝑗=0
(𝑥
𝑘+1
𝑥
𝑗
)
+
(𝑥
0
𝑥
0
) 𝑓 (𝑥
0
)(𝑥
𝑘+1
𝑥
0
)
Î
𝑘+1
𝑗=0
(𝑥
0
𝑥
𝑗
)
=
𝑘+1
Õ
𝑖=0
(𝑥
𝑖
𝑥
𝑖
) 𝑓 (𝑥
𝑖
)(𝑥
𝑘+1
𝑥
0
)
Î
𝑘+1
𝑗=0
(𝑥
𝑖
𝑥
𝑗
)
那么就有
𝑓 [𝑥
0
, 𝑥
1
, · · · , 𝑥
𝑘+1
] =
𝑘+1
Õ
𝑖=0
𝑓 (𝑥
𝑖
)
Î
𝑘+1
𝑗=0, 𝑗𝑖
(𝑥
𝑖
𝑥
𝑗
)
一阶的情形显然成立, 那么就完成了证明
展开形式是相当对称的, 以至于可以将 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑘
的顺序打乱而结果不变
差商 𝑓 [𝑥
0
, 𝑥
1
, ..., 𝑥
𝑘
] 中的点的顺序可以任意改变而结果不变
3.2 Newton 插值公式
注意到
𝑓 (𝑥) = 𝑓 [𝑥]
𝑓 (𝑥) = 𝑓 [𝑥
0
] + 𝑓 [𝑥, 𝑥
0
](𝑥 𝑥
0
)
如果注意力足够集中, 还能继续注意到
𝑓 (𝑥) = 𝑓 [𝑥
0
] + 𝑓 [𝑥
0
, 𝑥
1
](𝑥 𝑥
0
) + 𝑓 [𝑥, 𝑥
0
, 𝑥
1
](𝑥 𝑥
0
)(𝑥 𝑥
1
)
不妨猜测
𝑓 (𝑥) = 𝑓 [𝑥
0
] + · · · + 𝑓 [𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
](𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛1
)
+ 𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
](𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛
)
只需要利用归纳法即可简单证明
比较得到, 只需要证明
𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
](𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛
) = 𝑓 [𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛+1
](𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛
)
+ 𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛+1
](𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛
)(𝑥 𝑥
𝑛+1
)
约去公共部分, 只需要证明
𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
] = 𝑓 [𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
] + 𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛+1
](𝑥 𝑥
𝑛+1
)
根据插商的定义式, 这是显然成立的
𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛+1
] =
𝑓 [𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛+1
] 𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
]
𝑥
𝑛+1
𝑥
由此得到 Newton 插值公式
𝑁
𝑛
(𝑥) = 𝑎
0
+ 𝑎
1
(𝑥 𝑥
0
) + 𝑎
2
(𝑥 𝑥
0
)(𝑥 𝑥
1
) + · · · + 𝑎
𝑛
(𝑥 𝑥
0
)(𝑥 𝑥
1
) · · · (𝑥 𝑥
𝑛1
)
其中 𝑎
𝑖
= 𝑓 [𝑥
0
, 𝑥
1
, ..., 𝑥
𝑖
], 𝑖 = 0, 1, ..., 𝑛
它的插值余项自然就是
𝑅
𝑛
(𝑥) = 𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
](𝑥 𝑥
0
)(𝑥 𝑥
1
)...(𝑥 𝑥
𝑛
)
由于插值多项式是唯一的, 同阶的 Lagrange 值多项式 Newton 插值多项式必然相等, 然插值余
也应该相等. 故有
𝑓 [𝑥, 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
] =
𝑓
(𝑛+1)
(𝜉)
𝑛 + 1!
, 𝜉 (𝑥
0
, 𝑥
𝑛
)
4 Hermit 插值
4.1 密切插值
在插值中通常希望在插值点不仅函数值相等, 还希望函数的各阶导数也相等. 由此定义密切插值
[𝑎, 𝑏] 上有 𝑛 + 1 个插值 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
, 希望插值点 𝑥
𝑗
上有 0, 1, · · · , 𝑚
𝑗
阶导数相等, 对于每个 𝑥
𝑗
, 插值函数 𝑝 (𝑥) 满足
d
𝑘
𝑓 (𝑥)
d𝑥
𝑘
𝑥=𝑥
𝑗
=
d
𝑘
𝑝(𝑥)
d𝑥
𝑘
𝑥=𝑥
𝑗
𝑘 = 0, 1, ..., 𝑚
𝑗
它是不超过 𝑀 阶的多项式, 称为密切插值多项式, 其中 𝑀 是数据点的数目. 对于每个 𝑥
𝑗
需要给出 𝑚
𝑗
数据点, 因而有
𝑀 =
𝑛
Õ
𝑗=0
𝑚
𝑗
简单的情, 考虑每一个点的一阶导相等, 𝑚
𝑗
= 1, 则称 𝑝(𝑥) 𝑓 (𝑥) Hermite 插值多项式, 记为
𝐻
(
𝑥
)
4.2 最简单的 Hermite 插值
设有
𝑓 (𝑥
0
) = 𝑦
0
, 𝑓 (𝑥
1
) = 𝑦
1
, 𝑓
(𝑥
0
) =
˜
𝑦
0
, 𝑓
(𝑥
1
) =
˜
𝑦
1
并且 𝑥
1
𝑥
0
, 那么希望构造多项式 𝐻(𝑥) 满足
𝐻(𝑥
0
) = 𝑦
0
, 𝐻(𝑥
1
) = 𝑦
1
, 𝐻
(𝑥
0
) =
˜
𝑦
0
, 𝐻
(𝑥
1
) =
˜
𝑦
1
𝐻 应当是不超过三次的多项式.
𝐻(𝑥) = 𝑦
0
0
(𝑥) + 𝑦
1
1
(𝑥) +
˜
𝑦
0
𝑔
0
(𝑥) +
˜
𝑦
1
𝑔
1
(𝑥)
其中
0
,
1
, 𝑔
0
, 𝑔
1
都是不超过三次的多项式. 它们满足
0
(𝑥
0
) = 1
0
(𝑥
1
) = 0
0
(𝑥
0
) = 0
0
(𝑥
1
) = 0
1
(𝑥
0
) = 0
1
(𝑥
1
) = 1
1
(𝑥
0
) = 0
1
(𝑥
1
) = 0
𝑔
0
(𝑥
0
) = 0 𝑔
0
(𝑥
1
) = 0 𝑔
0
(𝑥
0
) = 1 𝑔
0
(𝑥
1
) = 0
𝑔
1
(𝑥
0
) = 0 𝑔
1
(𝑥
1
) = 0 𝑔
1
(𝑥
0
) = 0 𝑔
1
(𝑥
1
) = 1
可以得到
0
(𝑥) =
1 2
𝑥 𝑥
0
𝑥
0
𝑥
1
𝑥 𝑥
1
𝑥
0
𝑥
1
2
, 𝑔
0
(𝑥) = (𝑥 𝑥
0
)
𝑥 𝑥
1
𝑥
0
𝑥
1
2
1
(𝑥) =
1 2
𝑥 𝑥
1
𝑥
1
𝑥
0
𝑥 𝑥
0
𝑥
1
𝑥
0
2
, 𝑔
1
(𝑥) = (𝑥 𝑥
1
)
𝑥 𝑥
0
𝑥
1
𝑥
0
2
𝑓 𝐶
4
[𝑎,𝑏 ]
, 则有误差
𝑅(𝑥) = 𝑓 (𝑥) 𝐻 (𝑥) =
1
4!
𝑓
(4)
(𝜉)(𝑥 𝑥
0
)
2
(𝑥 𝑥
1
)
2
, 𝜉 (𝑎, 𝑏)
4.3 一般的 Hermite 插值
设有 𝑛 + 1 个点 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
, 则有唯一的不超过 2𝑛 + 1 次的多项式 𝐻 (𝑥)
𝐻
2𝑛+1
(𝑥) =
𝑛
Õ
𝑗=0
𝑓 (𝑥
𝑗
)
𝑗
(𝑥) +
𝑛
Õ
𝑗=0
𝑓
(𝑥
𝑗
)
ˆ
𝑗
(𝑥)
它们应当满足
𝑗
(𝑥
𝑖
) = 𝛿
𝑖 𝑗
𝑗
(𝑥
𝑖
) = 0
ˆ
𝑗
(𝑥
𝑖
) = 0
ˆ
𝑗
(𝑥
𝑖
) = 𝛿
𝑖 𝑗
那么显然 𝑥
𝑗
以外的插值点是
𝑗
(𝑥) 的二重根. 为了方便起见, 借用拉格朗日插值基函数
𝑙
𝑗
(𝑥) =
𝑛
Ö
𝑖=0,𝑖 𝑗
𝑥 𝑥
𝑖
𝑥
𝑗
𝑥
𝑖
𝑗
(𝑥) 显然有形式
𝑗
(𝑥) = (𝑎
𝑗
+ 𝑏
𝑗
𝑥)𝑙
2
𝑗
(𝑥)
求其导有
𝑗
(𝑥) = 𝑏
𝑗
𝑙
2
𝑗
(
𝑥
) +
2
(
𝑎
𝑗
+
𝑏
𝑗
𝑥
)
𝑙
𝑗
(
𝑥
)
𝑙
𝑗
(
𝑥
)
代入条件
𝑗
(𝑥
𝑗
) = 1,
𝑗
(𝑥
𝑗
) = 0 得到
𝑎
𝑗
= 1 + 2𝑥
𝑗
𝑙
𝑗
(𝑥
𝑗
), 𝑏
𝑗
= 2 𝑙
𝑗
(𝑥
𝑗
)
进而希望求解 𝑙
𝑗
(𝑥
𝑗
). 由于式中任何一个因子代入 𝑥
𝑗
都会为 1, 仅考虑求导后的系数即可, 那么
𝑙
𝑗
(
𝑥
)
=
𝑛
Õ
𝑖=0,𝑖 𝑗
1
𝑥
𝑗
𝑥
𝑖
可以写出
𝑗
(𝑥)
𝑗
(𝑥) =
"
1 2(𝑥 𝑥
𝑗
)
𝑛
Õ
𝑖=0,𝑖 𝑗
1
𝑥
𝑗
𝑥
𝑖
#
𝑛
Ö
𝑖=0,𝑖 𝑗
𝑥 𝑥
𝑖
𝑥
𝑗
𝑥
𝑖
!
2
下面希望求解
ˆ
𝑗
(𝑥). 显然除了 𝑥
𝑗
外的插值点是
ˆ
𝑗
(𝑥) 的二重根, 那么不妨设
ˆ
𝑗
(𝑥) = (𝑎
𝑗
+ 𝑏
𝑗
𝑥)𝑙
2
𝑗
(𝑥)
求导有
ˆ
𝑗
(𝑥) = 𝑏
𝑗
𝑙
2
𝑗
(𝑥) + 2(𝑎
𝑗
+ 𝑏
𝑗
𝑥)𝑙
𝑗
(𝑥)𝑙
𝑗
(𝑥)
代入条件
ˆ
𝑗
(𝑥
𝑗
) = 0,
ˆ
𝑗
(𝑥
𝑗
) = 1 得到
𝑎
𝑗
= 𝑥
𝑗
, 𝑏
𝑗
= 1
可以写出
ˆ
𝑗
(𝑥)
ˆ
𝑗
(𝑥) = (𝑥 𝑥
𝑗
)
𝑛
Ö
𝑖=0,𝑖 𝑗
𝑥 𝑥
𝑖
𝑥
𝑗
𝑥
𝑖
!
2
那么最终的 Hermite 插值多项式为
𝐻
2𝑛+1
(𝑥) =
𝑛
Õ
𝑗=0
𝑓 (𝑥
𝑗
)
𝑗
(𝑥) +
𝑛
Õ
𝑗=0
𝑓
(𝑥
𝑗
)
ˆ
𝑗
(𝑥)
𝑗
(𝑥) =
"
1 2(𝑥 𝑥
𝑗
)
𝑛
Õ
𝑖=0,𝑖 𝑗
1
𝑥
𝑗
𝑥
𝑖
#
𝑛
Ö
𝑖=0,𝑖 𝑗
𝑥 𝑥
𝑖
𝑥
𝑗
𝑥
𝑖
!
2
ˆ
𝑗
(𝑥) = (𝑥 𝑥
𝑗
)
𝑛
Ö
𝑖=0,𝑖 𝑗
𝑥 𝑥
𝑖
𝑥
𝑗
𝑥
𝑖
!
2
插值误差显然应当是 2𝑛 + 2 次的多项式, 那么可以构造
(𝑡) = 𝑓 (𝑡) 𝐻
2𝑛+1
(𝑡) 𝜆(𝑡 𝑥
0
)
2
(𝑡 𝑥
1
)
2
...(𝑡 𝑥
𝑛
)
2
显然 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
都是 (𝑡) 的根, 同时也是
(𝑡) 的根. 同时由余项的定义,𝑡 = 𝑥 也应当是 (𝑡) 的根, 那么
(𝑡) 就应当有 2𝑛 + 2 个根
𝑥
0
< 𝜉
0
< 𝑥
1
< 𝜉
1
< ... < 𝜉
𝑛1
< 𝑥
𝑛
, 还有一个𝜉
𝑛
𝑥附近
根据 Rolle 中值定理,
′′
(𝑡) 共有 2𝑛 + 1 个零点. 重复上述过程, 则存在一个 𝜉 使得
(2𝑛+2)
(𝜉) = 0, 𝜉 (𝑥
0
, 𝑥
𝑛
)
𝐻
2𝑛+1
(𝑥) 2𝑛 + 1 次的多项式, 2𝑛 + 2 阶导数为 0, 又有
(𝑡 𝑥
0
)
2
(𝑡 𝑥
1
)
2
...(𝑡 𝑥
𝑛
)
2
(2𝑛+2)
= (2𝑛 + 2)!
得到这个只需要考虑最高次项即可. 那么就会有
𝑓
(2𝑛+2)
(𝜉) 𝜆(2
2𝑛+2
(2𝑛 + 2)!) = 0 𝜆 =
𝑓
(2𝑛+2)
(𝜉)
(2𝑛 + 2)!
也就得到了插值误差
𝑓 (𝑥) 𝐻
2𝑛+1
(𝑥) =
𝑓
(2𝑛+2)
(𝜉)
(2𝑛 + 2)!
𝑛
Ö
𝑖=0
(𝑥 𝑥
𝑖
)
2
, 𝜉 (𝑥
0
, 𝑥
𝑛
)
4.4 Newton 插值到 Hermite 插值
设有 𝑛 + 1 个点 𝑥
0
, 𝑥
1
, ..., 𝑥
𝑛
, 则可以令
𝑧
0
= 𝑥
0
, 𝑧
1
= 𝑥
0
, 𝑧
2
= 𝑥
1
, 𝑧
3
= 𝑥
1
, ..., 𝑧
2𝑛
= 𝑥
𝑛
, 𝑧
2𝑛+1
= 𝑥
𝑛
由于
lim
𝑥
𝑖+1
𝑥
𝑖
𝑓 (𝑥
𝑖+1
) 𝑓 (𝑥
𝑖
)
𝑥
𝑖+1
𝑥
𝑖
= 𝑓
(𝑥
𝑖
)
那么可以令
𝑓 [𝑧
0
, 𝑧
1
] = 𝑓
(𝑥
0
), 𝑓 [𝑧
2
, 𝑧
3
] = 𝑓
(𝑥
1
), ..., 𝑓 [𝑧
2𝑛
, 𝑧
2𝑛+1
] = 𝑓
(𝑥
𝑛
)
由牛顿法得到插值多项式
𝐻
2𝑛+1
(𝑥) = 𝑓 [𝑧
0
] +
2𝑛+1
Õ
𝑘=1
𝑓 [𝑧
0
, 𝑧
1
, ..., 𝑧
𝑘
](𝑧
0
𝑧
1
)(𝑧
0
𝑧
2
)...(𝑧
0
𝑧
𝑘
)
由牛顿法得到插值误差
𝑅
2𝑛+1
(𝑥) = 𝑓 [𝑥, 𝑧
0
, 𝑧
1
, ..., 𝑧
2𝑛
](𝑥 𝑧
0
)(𝑥 𝑧
1
)...(𝑥 𝑧
2𝑛
)
5 样条插值
给定一个定义在 [𝑎, 𝑏] 上的函数 𝑓 (𝑥) 和一组插值节点
𝑎 = 𝑥
0
< 𝑥
1
< ... < 𝑥
𝑛
= 𝑏
并给出节点处的函数值 𝑦
𝑖
= 𝑓 (𝑥
𝑖
). 𝑓 𝑘 次样条插值 𝑠(𝑥) 满足
1. 在每个小区间 [𝑥
𝑖
, 𝑥
𝑖+1
] ,𝑠(𝑥) 是一个不超过 𝑘 次的多项式
2. 插值点相等: 𝑠(𝑥
𝑗
) = 𝑓 (𝑥
𝑗
), 𝑗 = 0, 1, ..., 𝑛
3. 𝑘 1 阶连续函数: 𝑠(𝑥) 𝐶
𝑘1
[𝑎, 𝑏]
𝑘 次样条函数: 具有 𝑘 1 阶连续导数的分段 𝑘 次多项式
5.1 三次样条插值
𝑓 的三次样条插值 𝑠(𝑥) 满足
1. 在每个小区间 [𝑥
𝑖
, 𝑥
𝑖+1
] ,𝑠(𝑥) 是一个不超过三次的多项式
2. 插值点处值相等
𝑠(𝑥
𝑗
) = 𝑓 (𝑥
𝑗
), 𝑗 = 0, 1, ..., 𝑛
3. 插值点左右函数连续
𝑠
𝑗+1
(𝑥
𝑗+1
) = 𝑠
𝑗
(𝑥
𝑗+1
), 𝑗 = 0, 1, ..., 𝑛 2
4. 插值点左右函数一阶导连续
𝑠
𝑗+1
(𝑥
𝑗+1
) = 𝑠
𝑗
(𝑥
𝑗+1
), 𝑗 = 0, 1, ..., 𝑛 2
5. 插值点左右函数二阶导连续
𝑠
′′
𝑗+1
(𝑥
𝑗+1
) = 𝑠
′′
𝑗
(𝑥
𝑗+1
), 𝑗 = 0, 1, ..., 𝑛 2
由此给出 4𝑛 2 个约束, 它还要满足下列三种边界条件之一, 共有 4𝑛 个约束, 可以唯一确定插值函数
1. 自然边界条件: 𝑠
′′
(𝑥
0
) = 𝑠
′′
(𝑥
𝑛
) = 0
2. 固支边界条件: 𝑠
(𝑥
0
) = 𝑓
(𝑥
0
), 𝑠
(𝑥
𝑛
) = 𝑓
(𝑥
𝑛
)
3. 周期边界条件: 𝑠
(𝑥
0
) = 𝑠
(𝑥
𝑛
), 𝑠
′′
(𝑥
0
) = 𝑠
′′
(𝑥
𝑛
)
5.2 二阶导数表示的三次样条
由于三次样条的二阶导是线性函数, 可以先利用
线性插值得到二阶导
. 简单起见,
𝑆
′′
(𝑥
𝑗
) = 𝑀
𝑗
, 𝑗 = 0, 1, ..., 𝑛
进行线性插值,
𝑆
′′
𝑗
(𝑥) =
𝑥 𝑥
𝑗+1
𝑥
𝑗
𝑥
𝑗+1
𝑀
𝑗
+
𝑥 𝑥
𝑗
𝑥
𝑗+1
𝑥
𝑗
𝑀
𝑗+1
对其积分两次, 应当会多一个待定的线性项. 为了好看, 不妨设
𝑆
𝑗
(𝑥) =
(𝑥 𝑥
𝑗+1
)
3
6(𝑥
𝑗
𝑥
𝑗+1
)
𝑀
𝑗
+
(𝑥 𝑥
𝑗
)
3
6(𝑥
𝑗+1
𝑥
𝑗
)
𝑀
𝑗+1
+ 𝑎
𝑗
(𝑥 𝑥
𝑗
) + 𝑏
𝑗
(𝑥 𝑥
𝑗
)
考虑设
𝑠
𝑗
(𝑥) = 𝑎
𝑗
+ 𝑏
𝑗
(𝑥 𝑥
𝑗
) + 𝑐
𝑗
(𝑥 𝑥
𝑗
)
2
+ 𝑑
𝑗
(𝑥 𝑥
𝑗
)
3
, 𝑗 = 0, 1, ..., 𝑛 1
代入端点值
𝑠
𝑗
(𝑥
𝑗
) = 𝑦
𝑗
, 𝑠
𝑗
(𝑥
𝑗+1
) = 𝑦
𝑗+1
得到
𝑎
𝑗
=
𝑦
𝑗
𝑥
𝑗+1
𝑥
𝑗
𝑀
𝑗
(𝑥
𝑗+1
𝑥
𝑗
)
6
, 𝑏
𝑗
=
𝑦
𝑗+1
𝑥
𝑗+1
𝑥
𝑗
𝑀
𝑗+1
(𝑥
𝑗+1
𝑥
𝑗
)
6
如果令
𝑗
= 𝑥
𝑗+1
𝑥
𝑗
, 那么可以简记为
𝑎
𝑗
=
𝑦
𝑗
𝑗
𝑀
𝑗
𝑗
6
, 𝑏
𝑗
=
𝑦
𝑗+1
𝑗
𝑀
𝑗+1
𝑗
6
那么得到插值函数
𝑆
𝑗
(𝑥) =
(𝑥
𝑗+1
𝑥)
3
𝑀
𝑗
+ (𝑥 𝑥
𝑗
)
3
𝑀
𝑗+1
6
𝑗
+
(𝑥
𝑗+1
𝑥)𝑦
𝑗
+ (𝑥 𝑥
𝑗
)𝑦
𝑗+1
𝑗
𝑗
6
(𝑥
𝑗+1
𝑥)𝑀
𝑗
+ (𝑥 𝑥
𝑗
)𝑀
𝑗+1
还剩下 𝑀
𝑗
待确定. 利用一阶导数连续, 先求其导
𝑆
𝑗
(𝑥) =
(𝑥
𝑗+1
𝑥)
2
𝑀
𝑗
2
𝑗
+
(𝑥 𝑥
𝑗
)
2
𝑀
𝑗+1
2
𝑗
𝑦
𝑗
𝑦
𝑗+1
𝑗
+
𝑗
6
𝑀
𝑗
𝑀
𝑗+1
一阶导数连续即 𝑆
𝑗1
(𝑥
𝑗
) = 𝑆
𝑗
(𝑥
𝑗
), 代入得到
𝑗1
𝑀
𝑗1
2
+
𝑗1
𝑀
𝑗
6
+
𝑦
𝑗1
𝑦
𝑗
𝑗1
+
𝑗1
6
(𝑀
𝑗1
𝑀
𝑗
)
=
𝑗
𝑀
𝑗
6
𝑗
𝑀
𝑗+1
2
𝑦
𝑗
𝑦
𝑗+1
𝑗
+
𝑗
6
(𝑀
𝑗
𝑀
𝑗+1
)
为了让上式变得更好看, 定义
𝜆
𝑗
=
𝑗
𝑗
+
𝑗
1
, 𝜇
𝑗
= 1 𝜆
𝑗
, 𝑑
𝑗
=
6
𝑗
+
𝑗
1
𝑦
𝑗+1
𝑦
𝑗
𝑗
𝑦
𝑗
𝑦
𝑗1
𝑗
1
那么
𝜆
𝑗
𝑀
𝑗1
+ 2𝑀
𝑗
+ 𝜇
𝑗
𝑀
𝑗+1
= 𝑑
𝑗
5.2.1 自然边界条件
自然边界条件下, 𝑀
0
, 𝑀
𝑛
给定, 那么有
©
«
2 𝜆
1
𝜇
1
2 𝜆
2
𝜇
2
2 𝜆
3
.
.
.
.
.
.
.
.
.
𝜇
𝑛2
2 𝜆
𝑛1
𝜇
𝑛1
2
ª
®
®
®
®
®
®
®
®
®
®
®
¬
©
«
𝑀
1
𝑀
2
𝑀
3
.
.
.
𝑀
𝑛2
𝑀
𝑛1
ª
®
®
®
®
®
®
®
®
®
®
®
¬
=
©
«
𝑑
1
𝜇
1
𝑀
0
𝑑
2
𝑑
3
.
.
.
𝑑
𝑛1
𝑑
𝑛
𝜆
𝑛
𝑀
𝑛
ª
®
®
®
®
®
®
®
®
®
®
®
¬
自然边界条件下, 𝑀
0
= 𝑀
𝑛
= 0, 那么
©
«
2 𝜆
1
𝜇
1
2 𝜆
2
𝜇
2
2 𝜆
3
.
.
.
.
.
.
.
.
.
𝜇
𝑛2
2 𝜆
𝑛1
𝜇
𝑛1
2
ª
®
®
®
®
®
®
®
®
®
®
®
¬
©
«
𝑀
1
𝑀
2
𝑀
3
.
.
.
𝑀
𝑛2
𝑀
𝑛1
ª
®
®
®
®
®
®
®
®
®
®
®
¬
=
©
«
𝑑
1
𝑑
2
𝑑
3
.
.
.
𝑑
𝑛1
𝑑
𝑛
ª
®
®
®
®
®
®
®
®
®
®
®
¬
5.2.2 固支边界条件
固支边界条件下给定了边界的一阶导数, 不妨设
𝑆
0
(𝑥
0
) = 𝑚
0
, 𝑆
𝑛
(𝑥
𝑛
) = 𝑚
𝑛
那么有
2𝑀
0
+ 𝑀
1
= 𝑑
0
, 𝑀
𝑛1
+ 2𝑀
𝑛
= 𝑑
𝑛
得到方程组
©
«
2 1
𝜇
1
2 𝜆
2
𝜇
2
2 𝜆
3
.
.
.
.
.
.
.
.
.
𝜇
𝑛2
2 𝜆
𝑛1
1 2
ª
®
®
®
®
®
®
®
®
®
®
®
¬
©
«
𝑀
1
𝑀
2
𝑀
3
.
.
.
𝑀
𝑛2
𝑀
𝑛1
ª
®
®
®
®
®
®
®
®
®
®
®
¬
=
©
«
𝑑
1
𝑑
2
𝑑
3
.
.
.
𝑑
𝑛1
𝑑
𝑛
ª
®
®
®
®
®
®
®
®
®
®
®
¬
5.2.3 周期边界条件
周期边界条件下,
𝑆
0
(𝑥
0
) = 𝑆
𝑛
(𝑥
𝑛
), 𝑆
′′
0
(𝑥
0
) = 𝑆
′′
𝑛
(𝑥
𝑛
) = 𝑀
0
利用一阶导数连续性条件 𝑆
0
(𝑥
0
) = 𝑆
𝑛
(𝑥
𝑛
), 可得
0
𝑀
0
2
+
0
𝑀
1
6
+
𝑦
0
𝑦
1
0
=
𝑛
𝑀
𝑛
2
+
𝑛
𝑀
𝑛1
6
+
𝑦
𝑛
𝑦
𝑛1
𝑛
又因为二阶导数连续性条件 𝑆
′′
0
(𝑥
0
) = 𝑆
′′
𝑛
(𝑥
𝑛
), 得到 𝑀
0
= 𝑀
𝑛
因此, 周期边界条件下的方程组为
©
«
2 𝜆
1
𝜇
𝑛
𝜇
1
2 𝜆
2
𝜇
2
2 𝜆
3
.
.
.
.
.
.
.
.
.
𝜇
𝑛2
2 𝜆
𝑛1
𝜆
𝑛
𝜇
𝑛1
2
ª
®
®
®
®
®
®
®
®
®
®
®
¬
©
«
𝑀
0
𝑀
1
𝑀
2
.
.
.
𝑀
𝑛2
𝑀
𝑛1
ª
®
®
®
®
®
®
®
®
®
®
®
¬
=
©
«
𝑑
1
𝑑
2
𝑑
3
.
.
.
𝑑
𝑛1
𝑑
𝑛
ª
®
®
®
®
®
®
®
®
®
®
®
¬
5.3 一阶导数表示的三次样条
对给定的插值点 {(𝑥
𝑗
, 𝑦(𝑥
𝑗
)), 𝑗 = 0, . . . , 𝑛} 假定 𝑆
(𝑥
𝑗
) = 𝑚
𝑗
,在每个小区间 [𝑥
𝑗
, 𝑥
𝑗+1
] 上作 Hermite 插值
𝑆
𝑗
(𝑥) =
1 2
𝑥 𝑥
𝑗
𝑥
𝑗
𝑥
𝑗+1
𝑥 𝑥
𝑗+1
𝑥
𝑗
𝑥
𝑗+1
2
𝑦
𝑗
+ (𝑥 𝑥
𝑗
)
𝑥 𝑥
𝑗+1
𝑥
𝑗
𝑥
𝑗+1
2
𝑚
𝑗
+
1 2
𝑥 𝑥
𝑗+1
𝑥
𝑗+1
𝑥
𝑗
𝑥 𝑥
𝑗
𝑥
𝑗+1
𝑥
𝑗
2
𝑦
𝑗
+
1
+ (𝑥 𝑥
𝑗
+
1
)
𝑥 𝑥
𝑗
𝑥
𝑗+1
𝑥
𝑗
2
𝑚
𝑗
+
1
再用 𝑆
′′
(𝑥
𝑗
+ 0) = 𝑆
′′
(𝑥
𝑗
0) 得到方程组
𝜆
𝑗
𝑚
𝑗1
+ 2𝑚
𝑗
+ 𝜇
𝑗
𝑚
𝑗+1
= 𝑐
𝑗
, 𝑗 = 1, 2, . . . , 𝑛 1
𝜆
𝑗
=
𝑗
𝑗
+
𝑗1
, 𝜇
𝑗
= 1 𝜆
𝑗
, 𝑐
𝑗
= 3
𝜆
𝑗
𝑦
𝑗
𝑦
𝑗1
𝑗1
+ 𝜇
𝑗
𝑦
𝑗+1
𝑦
𝑗
𝑗
5.4 B 样条
𝑘 次样条函数可以表示为基函数的线性组合, 基函数称为 𝑘 B 样条
5.4.1 0 B 样条
对于一个给定的无限序列 𝑥
𝑗
, 定义
𝐵
𝑗,0
(𝑥) =
1 𝑥
𝑗
𝑥 < 𝑥
𝑗+1
0 其他
它具有如下性质
1. 𝑥 [𝑥
𝑗
, 𝑥
𝑗+1
) 使得 𝐵
𝑗,0
不为零, 该区间称为 𝐵
𝑗,0
的支撑区
2. 𝐵
𝑗,0
是非负的
5.4.2 1 B 样条
引入辅助线性函数
𝜔
1
𝑗
(𝑥) =
𝑥 𝑥
𝑗
𝑥
𝑗+1
𝑥
𝑗
那么定义
𝐵
𝑗,1
(𝑥) = 𝜔
1
𝑗
(𝑥)𝐵
0
𝑗
(𝑥) + (1 𝜔
1
𝑗+1
(𝑥))𝐵
0
𝑗+1
(𝑥) =
𝜔
1
𝑗
(𝑥) 𝑥
𝑗
𝑥 < 𝑥
𝑗+1
𝜔
1
𝑗+1
(𝑥) 𝑥
𝑗+1
𝑥 < 𝑥
𝑗+2
0 其他
1. 𝐵
1
𝑗
的支撑区是 [𝑥
𝑗
, 𝑥
𝑗+2
)
2. 𝐵
1
𝑗
是非负的
3. 𝐵
1
𝑗
连续, 在除了 𝑥
𝑗
, 𝑥
𝑗+1
, 𝑥
𝑗+2
的地方可导
4. 对于任意 𝑥, 所有的 𝐵
1
𝑗
(𝑥) 之和为 1(无穷求和)
5.4.3 k B 样条
定义
𝜔
𝑘
𝑗
(𝑥) =
𝑥 𝑥
𝑗
𝑥
𝑗+𝑘
𝑥
𝑗
那么定义
𝐵
𝑘
𝑗
= 𝜔
𝑘
𝑗
(𝑥)𝐵
𝑘1
𝑗
(𝑥) + (1 𝜔
𝑘
𝑗+𝑘
(𝑥))𝐵
𝑘1
𝑗+1
(𝑥) =
𝜔
𝑘
𝑗
(𝑥) 𝑥
𝑗
𝑥 < 𝑥
𝑗+𝑘
𝜔
𝑘
𝑗+1
(𝑥) 𝑥
𝑗+1
𝑥 < 𝑥
𝑗+𝑘+1
0 其他
1. 𝐵
𝑘
𝑗
的支撑区是 [𝑥
𝑗
, 𝑥
𝑗+𝑘+1
)
2. 𝑘 > 0, 𝐵
𝑘
𝑗
是非负的
3. 𝐵
𝑘
𝑗
连续, 在除了 𝑥
𝑗
, 𝑥
𝑗+1
, ..., 𝑥
𝑗+𝑘+1
的地方可导
4. 对于任意 𝑥, 所有的 𝐵
𝑘
𝑗
(𝑥) 之和为 1(无穷求和)
6 参考资料
1.《数值计算方法与算法》第三版
2. Newton 插值法-https://leonfocus.github.io/newton-interpolation/
3. 多项式插值:拉格朗日插值法 (Lagrange Approximation)-https://zhuanlan.zhihu.com/p/645788465