在写代码之前需要先了解什么是三次样条插值:
什么是三次样条插值?
所谓三次样条插值对于一个区间(a,b)将区间分成x0 = a < x1 ......xn-1 < b = xn 的n-1个区间,我们需要通过已知的n+1个点来模拟一个未知的函数,在三次样条插值中我们采用分段的方法来做这件事情。
三次样条插值得到的分段函数保证一下条件成立,而这些条件也是用来求解每一段样条插值的条件:
1 模拟出来的函数在已知点的函数值等于f的函数值
2模拟出来的分段函数是二阶连续的也就是说导数和二阶导数在分段的交界点是相等的(连续性)
3需要知道在a和b点的二阶导数的情况,或者二阶导数在这n+1个点的变化规律(凹凸性)
下面直接转载其内在的规律
已知:
a. n+1个数据点[xi, yi], i = 0, 1, …, n
b. 每一分段都是三次多项式函数曲线
c. 节点达到二阶连续
d. 左右两端点处特性(自然边界,固定边界,非节点边界)
根据定点,求出每段样条曲线方程中的系数,即可得到每段曲线的具体表达式。
插值和连续性:
微分连续性:
样条曲线的微分式:
将步长 带入样条曲线的条件:
c. 由