三次样条是由分段三次样条构成的多项式,这些多项式穿过一组控制点。每个多项式的二阶导数通常在端点处设置为零,因为这提供了一个边界条件,完成了
方程组。这产生了一个所谓的“自然”三次样条,并导致一个简单的三对角系统,可以很容易地求解以给出多项式的系数。然而,这种选择不是唯一可能的,并且可以使用其他边界条件来代替。
三次样条在 Wolfram 语言 中实现为BSplineCurve[pts,SplineDegree ->3].
考虑一组 点的一维样条
。根据 Bartels et al. (1998, pp. 10-13),设样条的第
段表示为
|
(1)
|
其中 是参数
且
, ...,
。那么
|
(2)
| |||
|
(3)
|
对每个区间中的 求导,得到
|
(4)
| |||
|
(5)
|
|
(6)
| |||
|
(7)
| |||
|
(8)
| |||
|
(9)
|
现在要求二阶导数在点处也匹配,因此
|
(10)
| |||
|
(11)
| |||
|
(12)
| |||
|
(13)
|
对于内部点,以及端点满足
|
(14)
| |||
|
(15)
|
这总共给出了 个方程,用于求解
个未知数。为了获得另外两个条件,要求端点处的二阶导数为零,因此
|
(16)
| |||
|
(17)
|
重新排列所有这些方程(Bartels et al. 1998, pp. 12-13)得到以下优美的对称三对角系统
|
(18)
|
如果曲线是闭合的,则系统变为
|
(19)
|