Cubic spline(三次样条插值)(转载)
2017-08-17 16:46
288 查看
转自: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
自己以前上过数值分析这门课,用的是[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)
- Cubic spline(三次样条插值)
- matlab cubic spline interpolation 三次样条插值
- 三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)+双线性插值
- 三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)
- Opencv 三次样条曲线(Cubic Spline)插值
- Cubic Spline三次样条曲线
- 三次样条插值 SPLINE
- Spline(三次样条插值)
- Opencv 三次样条曲线(Cubic Spline)插值
- 转载:TCP为什么要三次握手而结束要四次
- TCP协议中的三次握手和四次挥手(图解) 转载
- cubic_interpolation 三次曲线插值代码
- 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例
- TCP协议中的三次握手和四次挥手(图解)(转载http://blog.csdn.net/whuslei/article/details/6667471)
- 【转载】简析TCP的三次握手与四次分手
- 《转载》TCP三次握手中SYN,ACK,Seq三者的关系
- 简析TCP的三次握手与四次分手【转载】
- 【转载】Socket通讯原理以及TCP、IP三次握手机制分析
- TCP连接建立过程中为什么需要“三次握手”[转载]