文章目录

  • 0 前言
  • 1 思路
  • 2 推导
    • 2.1 自然边界
    • 2.2 固定边界
    • 2.3 非扭结边界
  • 3 总结

主要参考文献:三次样条(cubic spline)插值

0 前言

在早期工程师制图时,把富有弹性的细长木条,即样条用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,作为样条曲线。

分段三次样条插值:分段就是把区间[a,b]分成n个区间:

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

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

1、在每个分段小区间[xi,xi+1]上,S(x)=Si(x)都是一个三次方程,其中i=0,1…,n-1;

2、满足插值条件,即:

3、曲线光滑,S(x)及其一阶导数、二阶导数均连续。

三次方程可构造成如下形式:

称这个方程为三次样条函数Si(x)。其中,每个小区间上的Si(x)有4个未知数:

而有n个小区间,则有4n个未知数,要解出这些未知数,则需要4n个方程来求解。下面的【1 求解】一节是求解思路。


1 思路

现在的目标是:【通过找出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):强制第一个插值点的三阶导数值等于第二个点的三阶导数值,最后第一个点的三阶导数值等于倒数第二个点的三阶导数值。即:

下面的【2 推导】一节是具体推导过程。


2 推导

Si(x)及其一阶导数、二阶导数分别为:

1、由:

可得:

2、步长设为:

由Si(xi+1)=yi+1可得:

3、由S’i(xi+1)=S’i+1(xi+1)可得:

有:

4、由S"i(xi+1)=S"i+1(xi+1)可得:

设:

可得:

5、由上面1-4的ai、ci、di的公式,即:

代入到:

可得:

6、于是将ai、bi、ci、di的公式代入到:

可得:

下面通过三种不同的边界条件分别构造三个以m为未知数的线性方程组。

2.1 自然边界

在自然边界条件时,端点二阶导数为0,即:

而:

则有m0=0,mn=0,用矩阵形式方程表示为:

上图中,等式左面的系数矩阵为严格对角占优矩阵:每一行中对角元素的值的模>其余元素值的模之和。故线性方程组有唯一解。

2.2 固定边界

在固定边界条件时,有:

而:

则有:

1、如下:

化简得以下公式(记为公式1):

2、如下:

化简得以下公式(记为公式2):

将上述公式1与公式2代入,得到新的方程组形式与【2.1 自然边界】的矩阵方程类似,只不过左侧的系数矩阵需要修改为:

同时右侧矩阵第一行与最后一行的两个0分别改为:


2.3 非扭结边界

在非扭结边界条件时,有:

由于:

则有:

化简得以下公式(记为公式3):

将上述公式3代入,得到新的方程组形式与【2.1 自然边界】的矩阵方程类似,只不过左侧的系数矩阵需要修改为:


3 总结

首先假定有n+1个数据节点:

1、计算步长:

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

3、解矩阵方程,求得二次微分值mi。该矩阵为三对角矩阵,常见解法为高斯消元法,可以对系数矩阵进行LU分解,分解为单位下三角矩阵和上三角矩阵,即:

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

5、在每个子区间:

中,创建方程:

结束


END

理论总结-三次样条插值相关推荐

  1. 三次样条插值-轨迹规划

    已知路径点生成无人车运动轨迹的方法–三次样条插值 三次样条的基本理论和求解方式不做具体赘述,可参考博客 需要注意的几个问题: 端点条件 由i的取值范围可知,共有n-1个公式, 但却有n+1个未知量m ...

  2. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

  3. b样条和三次样条_样条函数B样条三次样条插值光滑余因子

    样条函数,B样条,三次样条插值,光滑余因子 第七章 样条逼近方法教学目的及要求:掌握样条函数及性质.B-样条及性质.三次样条插值.借助于多项式来逼近,虽然有很多优点,但由于多项式乃幂级数的特例,其在一 ...

  4. 轨迹生成--三次样条插值

    三次样条函数插值(Cubic spline function interpolation)   对于样条概念解释得很好 三次样条插值算法C++实现 开源项目推荐:我个人中意的Python/C++数学库 ...

  5. python 插值_三次样条插值在Python中的实现

    什么是三次样条插值 三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系列形值点的一条光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组的过程. 实际计 ...

  6. 三次样条插值三弯矩matlab_三次样条(cubic spline)插值

    当已知某些点而不知道具体方程时候,最经常遇到的场景就是做实验,采集到数据的时候,我们通常有两种做法:拟合或者插值.拟合不要求方程通过所有的已知点,讲究神似,就是整体趋势一致.插值则是形似,每个已知点都 ...

  7. aitken插值方法的c++代码_无人驾驶路径规划技术-三次样条插值曲线及Python代码实现...

    自动驾驶运动规划(Motion Planning)是无人驾驶汽车的核心模块之一,它的主要任务之一就是如何生成舒适的.碰撞避免的行驶路径和舒适的运动速度.生成行驶路径最经典方法之一就是是Sampling ...

  8. 三次样条插值Python实现

    函数 y=11+x2y = \frac{1}{1 + x^2}y=1+x21​ 算法分析 三次样条插值.就是在分段插值的一种情况. 要求: 在每个分段区间上是三次多项式(这就是三次样条中的三次的来源) ...

  9. 【数学与算法】【分段三次Hermite插值】和【分段三次样条插值】

    光滑曲线在数学上的定义是什么?? 原文链接:光滑曲线在数学上的定义是什么? 回答1: 定义:切线随切点的移动而连续转动. 若函数f(x)f(x)f(x)在区间(a,b)(a,b)(a,b)内具有一阶连 ...

最新文章

  1. Django—Model就是ORM的具体体现
  2. 【H3C交换机】cpu各个进程的详细说明
  3. 修改 wordpress 后台管理员登录地址
  4. 【模板】 最小生成树
  5. 最短路径(弗洛伊德算法)
  6. 分享php中四种webservice实现的简单架构方法及实例(转)
  7. sqlserver 库服务器导数据
  8. 安卓界面组件-文本框
  9. POP-一个点击带有放大还原的动画效果
  10. Ubuntu14.04编译Opencv3.1错误:下载ippicv,解决方案
  11. 微信公众号主体如何变更:账号迁移全攻略
  12. js 字符串转gbk 数组
  13. windows 10 python 3.7.9 install rosbag
  14. 打孔纸带计算机运行原理
  15. 实训|第三天Linux登录界面的修改以及Richard Stallman、自由软件运动
  16. 文本框只能输入特定内容如文本框只能输入数字
  17. matlab GUI读取G代码在Edit,多行显示显示
  18. 爱数oracle备份软件,oracle 11g更新补丁后,第三方软件爱数RMAN备份报错ALLOCATE CHANNEL...
  19. 亚马逊运营思路是什么?新手卖家应该注意些什么问题?
  20. 圆角教程,教你制作网页常用的圆角矩形边角

热门文章

  1. STM32学习【2】STM32F103C8T6串口2USART2程序
  2. STM32CUBEMX驱动lcd1602,使用的是stm32f103c8t6芯片
  3. php把buffer转化为图片_长微博生成(将html转化为图片)原理浅析
  4. 苹果iPhone手机怎么投屏到电脑AirPlay镜像投屏
  5. 【算法】搜索算法—盲目搜索和启发式搜索
  6. JavaSE第2天练习题(运算符,选择流程控制语句)
  7. 洛谷分支结构:小鱼的航程(改进版),C语言
  8. IllegalArgumentException 异常时一个不易觉察的原因
  9. CAMP模型——估计资本成本的模型
  10. 如何在C ++中解析文件