理论总结-三次样条插值
文章目录
- 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
理论总结-三次样条插值相关推荐
- 三次样条插值-轨迹规划
已知路径点生成无人车运动轨迹的方法–三次样条插值 三次样条的基本理论和求解方式不做具体赘述,可参考博客 需要注意的几个问题: 端点条件 由i的取值范围可知,共有n-1个公式, 但却有n+1个未知量m ...
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- b样条和三次样条_样条函数B样条三次样条插值光滑余因子
样条函数,B样条,三次样条插值,光滑余因子 第七章 样条逼近方法教学目的及要求:掌握样条函数及性质.B-样条及性质.三次样条插值.借助于多项式来逼近,虽然有很多优点,但由于多项式乃幂级数的特例,其在一 ...
- 轨迹生成--三次样条插值
三次样条函数插值(Cubic spline function interpolation) 对于样条概念解释得很好 三次样条插值算法C++实现 开源项目推荐:我个人中意的Python/C++数学库 ...
- python 插值_三次样条插值在Python中的实现
什么是三次样条插值 三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系列形值点的一条光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组的过程. 实际计 ...
- 三次样条插值三弯矩matlab_三次样条(cubic spline)插值
当已知某些点而不知道具体方程时候,最经常遇到的场景就是做实验,采集到数据的时候,我们通常有两种做法:拟合或者插值.拟合不要求方程通过所有的已知点,讲究神似,就是整体趋势一致.插值则是形似,每个已知点都 ...
- aitken插值方法的c++代码_无人驾驶路径规划技术-三次样条插值曲线及Python代码实现...
自动驾驶运动规划(Motion Planning)是无人驾驶汽车的核心模块之一,它的主要任务之一就是如何生成舒适的.碰撞避免的行驶路径和舒适的运动速度.生成行驶路径最经典方法之一就是是Sampling ...
- 三次样条插值Python实现
函数 y=11+x2y = \frac{1}{1 + x^2}y=1+x21 算法分析 三次样条插值.就是在分段插值的一种情况. 要求: 在每个分段区间上是三次多项式(这就是三次样条中的三次的来源) ...
- 【数学与算法】【分段三次Hermite插值】和【分段三次样条插值】
光滑曲线在数学上的定义是什么?? 原文链接:光滑曲线在数学上的定义是什么? 回答1: 定义:切线随切点的移动而连续转动. 若函数f(x)f(x)f(x)在区间(a,b)(a,b)(a,b)内具有一阶连 ...
最新文章
- Django—Model就是ORM的具体体现
- 【H3C交换机】cpu各个进程的详细说明
- 修改 wordpress 后台管理员登录地址
- 【模板】 最小生成树
- 最短路径(弗洛伊德算法)
- 分享php中四种webservice实现的简单架构方法及实例(转)
- sqlserver 库服务器导数据
- 安卓界面组件-文本框
- POP-一个点击带有放大还原的动画效果
- Ubuntu14.04编译Opencv3.1错误:下载ippicv,解决方案
- 微信公众号主体如何变更:账号迁移全攻略
- js 字符串转gbk 数组
- windows 10 python 3.7.9 install rosbag
- 打孔纸带计算机运行原理
- 实训|第三天Linux登录界面的修改以及Richard Stallman、自由软件运动
- 文本框只能输入特定内容如文本框只能输入数字
- matlab GUI读取G代码在Edit,多行显示显示
- 爱数oracle备份软件,oracle 11g更新补丁后,第三方软件爱数RMAN备份报错ALLOCATE CHANNEL...
- 亚马逊运营思路是什么?新手卖家应该注意些什么问题?
- 圆角教程,教你制作网页常用的圆角矩形边角
热门文章
- STM32学习【2】STM32F103C8T6串口2USART2程序
- STM32CUBEMX驱动lcd1602,使用的是stm32f103c8t6芯片
- php把buffer转化为图片_长微博生成(将html转化为图片)原理浅析
- 苹果iPhone手机怎么投屏到电脑AirPlay镜像投屏
- 【算法】搜索算法—盲目搜索和启发式搜索
- JavaSE第2天练习题(运算符,选择流程控制语句)
- 洛谷分支结构:小鱼的航程(改进版),C语言
- IllegalArgumentException 异常时一个不易觉察的原因
- CAMP模型——估计资本成本的模型
- 如何在C ++中解析文件