转自:http://blog.csdn.net/lsxpu/article/details/38849775

自己以前上过数值分析这门课,用的是[1]这本教材,三次样条插值这一节,当时似乎看明白了,但在实际碰到它时,总觉得很神秘,也很心虚。过了好几年之后,想彻底理解这个cubic spline,就翻开以前的书看,看了老半天才看明白,上面写着很多乱七八糟的公式(当然也是有意义的),应该会像以前很快忘掉它们。之前看过Andrew NG写过的机器学习讲义,上面把各个公式娓娓道来,感觉很自然,也就理解的更深。于是乎,自己就在网上找老外是怎么讲这个的,[3]wiki百科也讲的迷迷糊糊的,后来搜到[2],直接醍醐灌顶。

已知函数在区间上的个节点

上的值,求插值函数,使得:

  1.  ;
  2. 在每个小区间是三次多项式,记为
  3.  在 上二阶连续可微,

则函数 称为 的三次样条插值函数,

其中是三次方函数,具有如下形式:

因此只要确定了这些系数,就计算出了,一共有个系数需要确定。

首先根据,可得:

  and 

则可得到个方程:

    and   

另外根据 在 上二阶连续可微,我们需要在点 上:

这两个方程可以写成:

这里有个方程,加上之前的个,目前总共有个方程,而未知量有个,这时就需要边界条件来提供两个方程,常用的边界条件有以下三种:

  1. 给定两端点处的导数值,  。特别地,当时,样条曲线在端点处呈水平状态。
  2. 给定两端点处的二阶导数值,   。特别地,当时,称为自然边界条件。
  3. 如果是以为周期的周期函数,则也应该是具有同样周期的周期函数,在端点处需要满足, 

值得注意的是,这个方程是关于未知量的线性方程,因此很容易通过线性方程组进行求解。

这样以后想忘记都会很难,这里没有给出例子,如果有机会可以给出实现程序。

参考:

【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(三次样条插值)(转载)相关推荐

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

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

  2. matlab spline三次样条插值x,Spline(三次样条插值)

    关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...

  3. Spline(三次样条插值)

    关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...

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

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

  5. 【20220207】【信号处理】三次样条插值原理详解

    方程组的求解本文不做介绍. 一.三次样条插值 1. 定义 三次样条插值(Cublic Spline Interpolation),简称 Spline 插值,是通过一系列样本点的光滑曲线,数学上通过求解 ...

  6. 数值计算 --- 三次样条函数插值(Cubic spline function interpolation)

    三次样条函数插值(Cubic spline function interpolation) Part I   插值 预备知识: 什么是插值?          已知部分离散的数据,但不知道满足这些数据 ...

  7. 三次样条插值 cubic spline interpolation

    什么是三次样条插值 插值(interpolation)是在已知部分数据节点(knots)的情况下,求解经过这些已知点的曲线, 然后根据得到的曲线进行未知位置点函数值预测的方法(未知点在上述已知点自变量 ...

  8. 三次样条曲线插值(cubic spline)实例应用

    目标 工作需要,需要达成这样得一个需求,给一系列得三维点,三维点按照顺序连接,形成一条折线.需要依照这条折线,进行曲线1m等距离插值.具体如下图 其中,红色圆圈点为原始点集OrigPoints(原始点 ...

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

    样条插值是一种工业设计中常用的.得到平滑曲线的一种插值方法,三次样条又是其中用的较为广泛的一种.本篇介绍力求用容易理解的方式,介绍一下三次样条插值的原理,并附C语言的实现代码. 1. 三次样条曲线原理 ...

最新文章

  1. [JS] HEX颜色转换成RGBA
  2. XMLJavaXMLBeans结合应用的价值
  3. python pypdf2另存为图片_用Python玩转PDF的各种骚操作
  4. 软件项目管理0724:见供应商的体会
  5. ytu 2335: 0-1背包问题
  6. [html] 用一个div模拟textarea的实现
  7. indexOf()方法的使用,截取字符串,字符串截取,切割字符串,split(),join(),Replace()
  8. 程序员眼中的编程语言
  9. 大学生研究生必备的数据竞赛平台
  10. Android6.0指纹识别开发
  11. 【系统架构】大型网站架构模式
  12. 案例研究–亚马逊服务中断,数据库崩溃–我们恢复数据库且无数据损失
  13. 手机图片怎么免费转换成PDF格式?教程来了
  14. IC卡CPU卡32位单片机S3系列接触式读写模块分类与性能攻略
  15. Java 判断对象是否所有属性为空
  16. ASP.NET Web API实现简单的文件下载与上传
  17. 用应用软件UCCW Widget制作出属于你独一无二的梦幻桌面吧!
  18. php导出数据库为excel文件,phpexcel导出数据库成excel文件
  19. 禁止ubuntu更新内核
  20. win10使计算机进入睡眠状态什么意思,技巧:如何在win10中进入睡眠模式计算机睡眠模式设置教程...

热门文章

  1. system.data.oracleclient
  2. FileProvider
  3. 【Java】巩固基础,温故知新——程序逻辑控制
  4. 电脑右键没有“发送到”选项
  5. SAP部分清账与剩余清账
  6. Java使用freemarker生成word文档并转pdf文档
  7. 关键字驱动和数据驱动
  8. 多路复用,讲的很明白
  9. 解决VScode任务栏图标异常的可能办法
  10. 矩阵分解--超详细解读