三次样条插值的缺点_三次样条(cubic spline)插值

本文详细介绍了三次样条插值的概念,包括分段三次样条插值的定义、特点以及如何构建三次样条函数。讨论了自然边界、固定边界和非扭结边界的条件,并提供了具体的推导过程。最后总结了三次样条插值的算法步骤,强调了不同边界条件对样条曲线形状的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当已知某些点而不知道具体方程时候,最经常遇到的场景就是做实验,采集到数据的时候,我们通常有两种做法:拟合或者插值。拟合不要求方程通过所有的已知点,讲究神似,就是整体趋势一致。插值则是形似,每个已知点都必会穿过,但是高阶会出现龙格库塔现象,所以一般采用分段插值。今天我们就来说说这个分段三次样条插值。

顾名思义,分段就是把区间[a,b]分成n个区间

,共有n+1个点,其中两个端点

。三次样条就是说每个小区间的曲线是一个三次方程,三次样条方程满足以下条件:

1,在每个分段小区间

上,

都是一个三次方程

2,满足插值条件,即

3, 曲线光滑,即

连续

则这个三次方程可以构造成如下形式:

这种形式,我们称这个方程为三次样条函数

可以看出每个小区间有四个未知数

,有n个小区间,则有4n个未知数,要解出这些未知数,则我们需要4n个方程来求解。

求解

我们要找出4n个方程来求解4n个未知数

首先,由于所有点必须满足插值条件,

,除了两个端点,所有n-1个内部点的每个点都满足

前后两个分段三次方程,则有2(n-1)个方程,再加上两个端点分别满足第一个和最后一个三次方程,则总共有2n个方程;

其次,n-1个内部点的一阶导数应该是连续的,即在第 i 区间的末点和第 i+1 区间的起点是同一个点,它们的一阶导数应该也相等,即

则有n-1个方程

另外,内部点的二阶导数也要连续,即

,也有n-1个方程

现在总共有4n-2个方程了,还差两个方程就可以解出所有未知数了,这两个方程我们通过边界条件得到。

有三种边界条件:自然边界,固定边界,非节点边界

1,自然边界 ( Natural Spline ):指定端点二阶导数为0,

2, 固定边界 ( Clamped Spline ): 指定端点一阶导数,这里分别定为A和B。即

3, 非扭结边界( Not-A-Knot Spline ): 强制第一个插值点的三阶导数值等于第二个点的三阶导数值,最后第一个点的三阶导数值等于倒数第二个点的三阶导数值. 即

具体推导

1, 由

可得

2,用

表示步长,由

推出

3,由

推出

可得

4,由

推出

改写为

可得

5,现在

都可以表示成二阶导的关系式,将其代入到

可得

6,将

代入

可得

这样我们可以构造一个以m为未知数的线性方程组。

1)在自然边界条件时,

可以看出,左侧的系数矩阵为严格对角占优矩阵。即:每一行中对角元素的值的模 > 其余元素值的模之和。故线性方程组有唯一解,且雅克比迭代法、高斯-赛德尔迭代法和0

2)在夹持边界条件时,

将上述两个公式带入方程组,新的方程组左侧为

3)在非扭结边界条件时,

由于

,并且

新的方程组系数矩阵可写为:

下图可以看出不同的端点边界对样条曲线的影响:

算法总结

假定有n+1个数据节点

1,计算步长

2,将数据节点和指定的首位端点条件带入矩阵方程

3,解矩阵方程,求得二次微分值

。该矩阵为三对角矩阵,常见解法为高斯消元法,可以对系数矩阵进行LU分解,分解为单位下三角矩阵和上三角矩阵。即

4,计算样条曲线的系数:

5,在每个子区间

中,创建方程

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值