1. 程式人生 > >Cubic spline(三次樣條插值)(轉載)

Cubic spline(三次樣條插值)(轉載)

轉自: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

一、引入 上一篇提到插值多項式,幾次函式就稱為幾次樣條函式如, 二次樣條函式為: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代表向量,不是一個數字 對於薄板樣條插值,其公式(是經過上邊