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)
一、引入 上一篇提到插值多項式,幾次函式就稱為幾次樣條函式如, 二次樣條函式為:f(x) = a*x^2 + b*x + c 三次樣條函式為:f(x) = a*x^3 + b^x^2 + c*x +d x=[1,3,5,7,9]; y=[2,4,6,8,10];有5個節點,4個區
Cubic spline(三次樣條插值)(轉載)
轉自:http://blog.csdn.net/lsxpu/article/details/38849775 自己以前上過數值分析這門課,用的是[1]這本教材,三次樣條插值這一節,當時似乎看明白了,但在實際碰到它時,總覺得很神祕,也很心虛。過了好幾年之後,想徹底理解這個
fortran三次樣條插值程式例項
Program testspline implicit none integer :: i integer, parameter :: n = 50, m = 100, dp = 8 real(dp) :: x(n), y
MATLAB 三次樣條插值原始碼
MATLAB 原始碼: function yy = Interpolation_Spline0(x, y, xx) %{ 函式功能:三次樣條插值法; 輸入: x:已知點橫座標; y:已知點縱座標; xx:插值點; 輸出: yy:插值點的函式值; 示例: clear; clc; x
數值分析用matlab求解三次樣條插值多項式
數值分析用matlab求解三次樣條插值多項式 時間真快,2018年只剩下2天,2019年即將來臨! 今晚整理筆記本中的資料,看了下之前給朋友解答的一個《數值分析》實驗題目,還是有點意思。不管怎樣,分享給需要的朋友,希望有所幫助! 給定函式,及節點如下: 求其三次樣條插值多項式(
三次樣條插值演算法的C++實現
標頭檔案: /* * Copyright (c) 2008-2011 Zhang Ming (M. Zhang), [email protected] * * This program is free software; you can redistri
用matlab程式實現求解三次樣條插值
X =[ 0,0.2,0.4,0.6,0.8,1.0]; Y=[1.0, 0.818732, 0.670320, 0.548812, 0.449329, 0.367879]; cs = csapi(
Matlab 三次樣條插值多項式表示
Matlab Spline pp.coefs 如何運用MATLAB 三次樣條插值的問題,今天做作業,突然想用Matlab搞搞。 題目如下: 清華大學出版社的《數值分析(第5版)》 P49,20題。 x=[0.25 0.3 0.39 0.45 0.53]; y=[ 0
C++實現三次樣條插值演算法
程式中函式說明: 用float f(int x1, int x2, int x3)來寫函式; 用void cal_m(int n)來解係數; 用void printout(int n)來確定次數。 三次樣條插值演算法(壓緊樣條)原始碼: //#incl
樣條插值法(Java)
Coding trace 算法 top writer 檢查 block 技術分享 iter 該程序包含:樣條插值法、讀取文件,寫入文件,字符型轉double型方法等; 適合初學Java的人學習; 在cmd中執行, 在Linux中執行 完整代碼如下: 樣條插值法:
【 MATLAB 】MATLAB 實現模擬訊號取樣後的重建(三)應用三次樣條函式spline實現內插
前三篇博文講了三種方法進行內插重建訊號: 這篇文章使用三次樣條函式spline來實現內插重建,並分析重建誤差。 採用的案例依然是上篇博文中的案例: 模擬訊號: 對該訊號使用兩種不
Opencv 三次樣條曲線(Cubic Spline)插值
1.樣條曲線簡介 樣條曲線(Spline)本質是分段多項式實函式,在實數範圍內有:S:[a,b]→R,在區間[a,b]上包含k個子區間[ti−1,ti],且有: a=t0<t1<⋯<tk−1<tk=b(1) 對應每一段區
Matlab三次樣條法插值
end for 直接 mat wid tla 文獻 nbsp 出現 以N方向為例: 1、將N方向數據導入Matlab,將十進制年轉化為年積日 2、重新排序,將缺失數據的天數以NaN補齊 3、尋找出NaN所在的天數 nxx = find( isnan(n) ); 4、
採用Cardinal法構造插枝分段三次樣條曲線 : 實戰篇
本文由timewolf完成,首發於CSDN,作者保留版權。未經許可,不得使用於任何商業用途。如需聯絡請發郵件:karla9(AT)eyou(dot)com 下面會給出一個簡單的例子: 在視窗上用滑鼠點8個點,然後就會將這8個點的座標畫出來~~~, 我共總用了3
採用Cardinal法構造插枝分段三次樣條曲線 : 程式碼篇
說明:Spline類就是Cardinal樣條曲線了,這個類裡面記錄了4個控制點:m_startControlPoint, m_startPoint, m_endPoint, m_endControlPoint, 分別按順序對應Pk-1, Pk, Pk+1, Pk+2, 由於C
最臨近 雙線性 三次卷積插值(影象放縮)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
薄板樣條插值---TPS(Thin Plate Spline)
薄板樣條插值—TPS(Thin Plate Spline) 插值 已知一系列的觀測點 ( x
三次樣條擬合典型例項
1設計目的、要求 對龍格函式在區間[-1,1]上取的等距節點,分別作多項式插值、三次樣條插值和三次曲線擬合,畫出及各逼近函式的圖形,比較各結果。 2設計原理 (1) 多項式插值:利用拉格朗日多項式插值的方法,其主要原理是拉格朗日多項式,即: 表示待插值函式的個節點
Matlab之三次樣條畫圖和表示式
這一題是得到資料點(0,3),(1,5),(2,4),(3,1)並得到它的三次樣條表示式和畫出三次樣條後的圖圖形。 以及對資料點(-1,3),(0,5),(3,1),(4,1),(5,1)並得到它的三次樣條表示式和畫出三次樣條後的圖圖形。 用函
徑向基-薄板樣條插值數學公式、原理,以及程式碼實現基本過程
徑向基插值部分 徑向基函式RBF (Radial Basis Function)有以下五種基函式 其中r代表代待求點X與已知點Xi之間的向量距離 上邊的公式是適用於以上五種基函式的計算公式,其中X代表向量,不是一個數字 對於薄板樣條插值,其公式(是經過上邊