三次样条插值的原理(一)

在做三次样条插值的时候,我们需要首先注意几点:

第一,样条插值主要有两种,一种并不算插值,属于拟合,近似,不过每个给定的离散数据点;另一种是插值,过每个离散数据点。

第二、样条插值函数是在每个段上定义的,如果有N段,就是N个函数。

如果有N+1个数据点,就会一共有N个间隔。也就有分了N段的曲线。我们假设每段曲线为S(x),假设这一堆数据点为:

x_0 ,x_1, x_2,...,x_N 是按照从小到大的顺序排列的,对应每个点的值y_0 ,y_1, y_2,...,y_N

假设我们取其中的一段进行分析,比如取 x_4 和 x_5 ,在这个间隔的曲线就是 S_4(x)

首先我们需要保证的是,S_4(x_4)=S_4(x_5) ,当然也有 S_5(x_5)=S_5(x_6)

我们设该三次多项式为:S_4(x) = a_4+b_4(x-x_4)+c_4(x-x_4)^2+d_4(x-x_4)^3

除了上面要保证的条件,还有

{S_4}(x_4)=y_4 对应到每个点的插值应该和真实值一样。

{S_4}'(x_5)={S_5}'(x_5) 表示的是其导数也应该是连续的。

{S_4}''(x_5)={S_5}''(x_5) 表示的是其二阶导数也应该是连续的。

为了方便描述,我们做一些替代:h_i 表示第 i 段间隔。{S_i}''(xi)=m_i 表示第 i 段的二次函数在边缘的二阶导数。

把这些关系联立,然后带入到S_i(x) = a_i+b_i(x-x_i)+c_i(x-x_i)^2+d_i(x-x_i)^3中,就能解得如下公式:

在首尾两端令 S''=0 

 

解该方程就能得到每段的插值。

参考文献:三次B样条插值和误差分析

三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)

三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dezeming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值