插值方法


最近看文獻發現插值有很多用處,這篇博客是用來梳理和記錄的。

其他參考:

https://blog.csdn.net/shenziheng1/article/details/53373807

1、插值方法原理詳解【轉】

轉載於http://www.cnblogs.com/duye/p/8671820.html 

插值就是根據已知數據點(條件),來預測未知數據點值得方法。具體來說,假如有n個已知條件,就可以求一個n-1次的插值函數P(x),使得P(x)接近未知原函數f(x),並由插值函數預測出需要的未知點值。而又n個條件求n-1次P(x)的過程,實際上就是求n元一次線性方程組。

1)代數插值

就是多項式插值,即所求插值函數為多項式函數。一般來說多項式插值就是求n-1個線性方程的解,拉格朗日插值即是基於此思想。

2)泰勒插值

泰勒插值的條件就是已知0-n階的導數,滿足n階可導這個條件實在是太苛刻,導致實際上泰勒插值並不常用。下面介紹拉格朗日插值與牛頓插值,這兩種方法在本質上是相同的。

3)拉格朗日插值

拉格朗日創造性的避開的方程組求解的復雜性,引入“基函數”這一概念,使得快速手工求解成為可能。

Definition:求作<=n 次多項式 pn(x),使滿足條件pn(xi)= yi,i = 0,1,…,n.這就是所謂拉格朗日( Lagrange)插值。

下面介紹基函數的一般形式:
對於要求的插值函數P(x),可以證明,均可以化簡為以下形式:

給出基函數的一般形式為:

                           

     此即著名的拉格朗日插值公式

值得注意的是,拉格朗日插值的方法,在插值區間內插值的精度遠遠大於區間外的精度,故一般說,區間外,拉格朗日插值是不准確的。

4)牛頓插值

本質上和朗格朗日插值無異,但為什么牛頓也要提出這么一種插值方法呢?這是因為,拉格朗日插值每增加一個新節點,都要重新計算,換言之,它不具備承襲性。牛頓經過嚴密的推導,總結了下列具有承襲性的插值方法。差商表如下:

差商具有許多優美的性質,如對稱性等,這里不做更多說明。根據上述差商定義,自然得到下面的差商公式表:(即把差商定義式展開)

 

從而,把后一項不斷的代入前一項,就得到:

 

把最后一項去掉,作為余項(因其含有未知的x),就得到牛頓差商公式:

可以證明,這是關於x的n次多項式。

5) 牛頓插值與拉格朗日插值的比較

設拉格朗日插值函數為P(x),牛頓插值函數為N(x),顯然二者均滿足:P(xi) = N(xi) = f(xi);

由代數多項式插值的唯一性(本質都在解最開始提到的方程),顯然有:P(x) = N(x);

因而,兩個插值方法的余項也是相等的。這很有意思,兩個余項風格迥異,形式完全不同,卻證明了其相等。

當增加一個節點時,對於拉格朗日插值,必須摒棄前面的所有計算去重新計算,而牛頓插值公式卻告訴我們,增加的節點只需要在其后再加一項。這種承襲性使得牛頓插值再某些情境下會比拉格朗日插值更加靈活易用。另外還需說明一點,計算余項時,牛頓插值公式余項由於不需要導數,故f(x)是由離散點或者導數不存在時仍然適用,這是拉格朗日余項計算所不能比擬的。

6)埃爾米特插值(Hermite)

有時候,我們不僅要求插值函數在給定節點上函數值重合,而且要求若干階導數也重合;即:要求插值函數φ(x)滿足:

7)分段插值

簡而言之,分段插值就是對每一個分段區間(xi,xi+1)分別進行插值,則最后所得插值函數為一分段函數。

在[-5,5]上,對函數f(x) = 1/(1+x^2)進行多項式插值,隨着次數的增高,可以看到雖然與原函數重合的點越來越多,可以在端點附近抖動越大,這稱為Runge現象。如下圖:

在這種原因下,誕生了更加常用的使用分段插值。

 8)分段線性插值

在每個區間[xi,xi+1]上,用1階多項式 (直線) 逼近 f (x):根據前面的拉格朗日插值,在每個區間[xi,xi+1]上得:

余項:R(x) = f''(x)/2! * (x-xi)(x-xi+1) <= (xi+1-xi)^2/8 *max(|f''(x)|);

分段差值簡單易行,又克服了Runge現象,但它卻導致一階導數不連續,有時候這可是不能容忍的!為了克服線性插值一階導數不連續的缺點,可以采取下面的分段Hermite插值。

9)分段三次(埃爾米特)插值

對於每一個區間,如果不僅僅知道端點處的函數值f(xi-1)、f(xi),還知道f‘(xi-1)、f’(xi),那么我們就有四個條件,自然可以進行三次插值。求解方法:

1. 可以基於承襲求解。即基於兩點求拉格朗日插值,由此構造,並根據導數條件求出未知系數。

2.埃爾米特方法。前面已經提到,這里不做贅述。

 10)樣條插值(主講常用的三次樣條插值)

前面的分段插值,本質上還是多項式插值。如果采用分段多項式插值, 則由於插值基函數只是局部活躍(它們的支集是局部緊致的),  結點上的誤差可以被控制在小的范圍內, 因而也帶來了內在的高度穩定性. 這是分段插值的一大優勢。

許多實際問題希望插值函數具有較高階的整體光滑性. 此時, 高次Hermite插值或分段高次Hermite插值可以利用(注意:分段高次Lagrange插值和Newton插值等是做不到的,在插值結點上它們只能保證插值函數連續)。

但是,對於埃爾米特插值,必須知道每一個點的導數,在實際應用中這顯然是不現實的,實際上這種求解也是中看不中用的。樣條插值應運而生,解決了這個問題,並在各個領域大展身手,可以說是插值方法的里程碑。

樣條插值:簡而言之,就是依然對每一個小區間進行插值,但是不需要依賴於導數的已知;由於我們要做的就是使得端點出滿足某種條件的光滑(一般來說,三次樣條插值就是要滿足二階導數連續),根據這個要求,我們就可以在未知導數的情況下推導出樣條函數。

 


免責聲明!

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



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