三次樣條插值介紹


所謂三次樣條插值對於一個區間(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 

 原創作者博客地址:https://blog.csdn.net/flyingleo1981/article/details/53008931


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM