在之前,我们都是用一个函数来拟合数据点的分布,但有时候使用单一函数很难达到比较好的拟合效果,所以就有了分段函数来拟合数据点,但分段函数如果不设置约束条件的话,会显得整个拟合比较“僵硬”,最直观的表现就是线条不平缓。为了解决这个问题,就引出今天要研究的算法,样条函数插值法。
样条函数实际上就是分段函数,但是其每段的函数需要用m次多项式来拟合相邻的两个数据点,并且保证这个m次多项式具有m-1阶连续导数。这边文章只研究三次样条函数,那么分段函数就为三次多项式,为了使整个分段函数看起来平滑,需要具备以下几个条件:
(1)分段函数过每个插值点
(2)相邻两分段函数在插值点处连续
(3)相邻两分段函数在插值点处一阶导连续
(4)相邻两分段函数在插值点处二阶导连续
(5)边界插值点的约束条件
我们假设有n+1个插值点 (,)、(,)、..............(,),那么区间就会有n个,就会有n个分段函数,每个分段函数都为三次多项式,那么:
从上面的分段函数我们可以看出来,每一个分段函数都有4个未知数,共有n个分段函数,所以有4n个未知数。
根据条件(1):= 可以构建n个方程
根据条件(2):== 可以构建n个方程
根据条件(3):= 可以构建n-1个方程
根据条件(4)= 可以构建n-1个方程
根据条件(5),一般对于边界点使用的都是自由边界,需要满足的条件为=0 且=0 这样就可以构建2个方程
综合以上所有条件,一共就有4n个方程,就可以解出这4n个未知数啦