Cubic spline(三次样条插值)(转载)
转自:http://blog.csdn.net/lsxpu/article/details/38849775
自己以前上过数值分析这门课,用的是[1]这本教材,三次样条插值这一节,当时似乎看明白了,但在实际碰到它时,总觉得很神秘,也很心虚。过了好几年之后,想彻底理解这个cubic spline,就翻开以前的书看,看了老半天才看明白,上面写着很多乱七八糟的公式(当然也是有意义的),应该会像以前很快忘掉它们。之前看过Andrew NG写过的机器学习讲义,上面把各个公式娓娓道来,感觉很自然,也就理解的更深。于是乎,自己就在网上找老外是怎么讲这个的,[3]wiki百科也讲的迷迷糊糊的,后来搜到[2],直接醍醐灌顶。
已知函数在区间上的个节点
上的值,求插值函数,使得:
- ;
- 在每个小区间上是三次多项式,记为;
- 在 上二阶连续可微,
则函数 称为 的三次样条插值函数,
其中是三次方函数,具有如下形式:
因此只要确定了这些系数,就计算出了,一共有个系数需要确定。
首先根据,可得:
and
则可得到个方程:
and
另外根据 在 上二阶连续可微,我们需要在点 上:
这两个方程可以写成:
这里有个方程,加上之前的个,目前总共有个方程,而未知量有个,这时就需要边界条件来提供两个方程,常用的边界条件有以下三种:
- 给定两端点处的导数值, 。特别地,当时,样条曲线在端点处呈水平状态。
- 给定两端点处的二阶导数值, 。特别地,当时,称为自然边界条件。
- 如果是以为周期的周期函数,则也应该是具有同样周期的周期函数,在端点处需要满足,
值得注意的是,这个方程是关于未知量的线性方程,因此很容易通过线性方程组进行求解。
这样以后想忘记都会很难,这里没有给出例子,如果有机会可以给出实现程序。
参考:
【1】数值计算方法,丁丽娟、程纪元
【2】Introduction to Numerical Methods and Matlab Programming for Engineers http://www.math.ohiou.edu/courses/math3600/book.pdf
【3】Spline interpolation http://en.wikipedia.org/wiki/Spline_interpolation
【4】三次样条插值(Cubic Spline Interpolation)及代码实现(C语言) http://www.cnblogs.com/xpvincent/archive/2013/01/26/2878092.html
【5】在博客中用latex写公式 http://blog.csdn.NET/abcjennifer/article/details/8036018
【6】如何在CSDN博客上插入公式 http://blog.csdn.net/johnnyfdu/article/details/10857743
Cubic spline(三次样条插值)(转载)相关推荐
- 三次样条插值三弯矩matlab_三次样条(cubic spline)插值
当已知某些点而不知道具体方程时候,最经常遇到的场景就是做实验,采集到数据的时候,我们通常有两种做法:拟合或者插值.拟合不要求方程通过所有的已知点,讲究神似,就是整体趋势一致.插值则是形似,每个已知点都 ...
- matlab spline三次样条插值x,Spline(三次样条插值)
关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...
- Spline(三次样条插值)
关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...
- 【数学与算法】【分段三次Hermite插值】和【分段三次样条插值】
光滑曲线在数学上的定义是什么?? 原文链接:光滑曲线在数学上的定义是什么? 回答1: 定义:切线随切点的移动而连续转动. 若函数f(x)f(x)f(x)在区间(a,b)(a,b)(a,b)内具有一阶连 ...
- 【20220207】【信号处理】三次样条插值原理详解
方程组的求解本文不做介绍. 一.三次样条插值 1. 定义 三次样条插值(Cublic Spline Interpolation),简称 Spline 插值,是通过一系列样本点的光滑曲线,数学上通过求解 ...
- 数值计算 --- 三次样条函数插值(Cubic spline function interpolation)
三次样条函数插值(Cubic spline function interpolation) Part I 插值 预备知识: 什么是插值? 已知部分离散的数据,但不知道满足这些数据 ...
- 三次样条插值 cubic spline interpolation
什么是三次样条插值 插值(interpolation)是在已知部分数据节点(knots)的情况下,求解经过这些已知点的曲线, 然后根据得到的曲线进行未知位置点函数值预测的方法(未知点在上述已知点自变量 ...
- 三次样条曲线插值(cubic spline)实例应用
目标 工作需要,需要达成这样得一个需求,给一系列得三维点,三维点按照顺序连接,形成一条折线.需要依照这条折线,进行曲线1m等距离插值.具体如下图 其中,红色圆圈点为原始点集OrigPoints(原始点 ...
- 三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)
样条插值是一种工业设计中常用的.得到平滑曲线的一种插值方法,三次样条又是其中用的较为广泛的一种.本篇介绍力求用容易理解的方式,介绍一下三次样条插值的原理,并附C语言的实现代码. 1. 三次样条曲线原理 ...
最新文章
- [JS] HEX颜色转换成RGBA
- XMLJavaXMLBeans结合应用的价值
- python pypdf2另存为图片_用Python玩转PDF的各种骚操作
- 软件项目管理0724:见供应商的体会
- ytu 2335: 0-1背包问题
- [html] 用一个div模拟textarea的实现
- indexOf()方法的使用,截取字符串,字符串截取,切割字符串,split(),join(),Replace()
- 程序员眼中的编程语言
- 大学生研究生必备的数据竞赛平台
- Android6.0指纹识别开发
- 【系统架构】大型网站架构模式
- 案例研究–亚马逊服务中断,数据库崩溃–我们恢复数据库且无数据损失
- 手机图片怎么免费转换成PDF格式?教程来了
- IC卡CPU卡32位单片机S3系列接触式读写模块分类与性能攻略
- Java 判断对象是否所有属性为空
- ASP.NET Web API实现简单的文件下载与上传
- 用应用软件UCCW Widget制作出属于你独一无二的梦幻桌面吧!
- php导出数据库为excel文件,phpexcel导出数据库成excel文件
- 禁止ubuntu更新内核
- win10使计算机进入睡眠状态什么意思,技巧:如何在win10中进入睡眠模式计算机睡眠模式设置教程...