三次樣條插值介紹

所謂三次樣條插值對於一個區間(a,b)將區間分成x0 = a < x1 ......xn-1 < b = xn 的n-1個區間,我們需要通過已知的n+1個點來模擬一個未知的函數,在三次樣條插值中我們採用分段的方法來做這件事情。

三次樣條插值得到的分段函數保證一下條件成立,而這些條件也是用來求解每一段樣條插值的條件:

1 模擬出來的函數在已知點的函數值等於f的函數值

2模擬出來的分段函數是二階連續的也就是說導數和二階導數在分段的交界點是相等的

3需要知道在a和b點的二階導數的情況,或者二階導數在這n+1個點的變化規律

下面直接轉載其內在的規律

已知:

a. n+1個數據點[xi, yi], i = 0, 1, …, n

b. 每一分段都是三次多項式函數曲線

c. 節點達到二階連續

d. 左右兩端點處特性(自然邊界,固定邊界,非節點邊界)

根據定點,求出每段樣條曲線方程中的係數,即可得到每段曲線的具體表達式。

 

插值和連續性:

image, 其中 i = 0, 1, …, n-1

微分連續性:

image , 其中 i = 0, 1, …, n-2

樣條曲線的微分式:

imageimage

 

將步長 帶入樣條曲線的條件:

a. 由image (i = 0, 1, …, n-1)推出

image

b. 由image (i = 0, 1, …, n-1)推出

image

c. 由 image (i = 0, 1, …, n-2)推出

由此可得:

image

d. 由 image (i = 0, 1, …, n-2)推出

image

 

image ,則

a. image 可寫爲:

image ,推出

image

b. 將ci, di帶入 image 可得:

image

c. 將bi, ci, di帶入image (i = 0, 1, …, n-2)可得:

image

這樣我們可以構造一個以m爲未知數的線性方程組,而且在端點條件已知的情況下我們是知道其中幾個未知數的值的

端點條件

由i的取值範圍可知,共有n-1個公式, 但卻有n+1個未知量m 。要想求解該方程組,還需另外兩個式子。所以需要對兩端點x0和xn的微分加些限制。 選擇不是唯一的,3種比較常用的限制如下。

a. 自由邊界(Natural)

首尾兩端沒有受到任何讓它們彎曲的力,即image 。具體表示爲image 和 image

則要求解的方程組可寫爲:

imageimage 

 

b. 固定邊界(Clamped)

首尾兩端點的微分值是被指定的,這裏分別定爲A和B。則可以推出

image

image

將上述兩個公式帶入方程組,新的方程組左側爲

image

c. 非節點邊界(Not-A-Knot)

指定樣條曲線的三次微分匹配,即

image

image

根據image 和image ,則上述條件變爲

image

image

新的方程組係數矩陣可寫爲:

image

 

 

右下圖可以看出不同的端點邊界對樣條曲線的影響:

image

 

1.3 算法總結

假定有n+1個數據節點

image

a. 計算步長image (i = 0, 1, …, n-1)

b. 將數據節點和指定的首位端點條件帶入矩陣方程

c. 解矩陣方程,求得二次微分值image。該矩陣爲三對角矩陣,具體求法參見我的上篇文章:三對角矩陣的求解

d. 計算樣條曲線的係數:

image

其中i = 0, 1, …, n-1

e. 在每個子區間image 中,創建方程

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章