1.三次样条插值和B样条三次插值
在我查询资料的过程中,有一段时间把它们混在一起,三次样条插值和B样条三次插值它们原理是不一样的。
三次样条插值是在两个点之间使用一个三次多样式去拟合,如.它有四个未知数,因此需要四个方程去求解它。对于有n+1个点的情况下,则有n个多项式,4n个未知数,需要4n个方程。每个多项式都经过两个端点,则有2n个方程;内部n-1个点,在点两端要求一阶导连续,二阶导也连续,则有2(n-1)个方程;再加上两个边界条件(如第一个端点和最后一个端点的二阶导为0),凑齐4n个方程。如MATLAB中函数spline。
B样条中的点是控制点,是通过控制点去拟合出曲线。当我们想拟合出的曲线的次数为三次(阶数为4)时,则为B样条三次插值。如MATLAB中函数spapi。B样条通常有两种使用方式,一种是给出控制点直接去拟合就好,另一种是给出一些离散点,使得拟合出的曲线经过这些点,此时你需要反求出控制点,再通过这些控制点去拟合。还有一种是对一堆点,用B样条去拟合,加入惩罚系数,使得通过这些点的曲线近似光滑。
2.B样条
上面是B样条的基函数,称之为Cox-de Boor公式。从公式上看,B样条曲线上每个点是所有控制点的加权平均,权重由基函数决定。