函數插值方法綜述

引言

首先,插值是計算數學裏面的一種函數逼近,只不過逼近的函數不是複雜連續函數,而是一組沒有表達式的離散數值。

像計算數學裏面的其他數值方法一樣,插值看起來是一種非常簡單的方法,但確實也是一種可行有效的方法。可行性來自於誤差分析,即誤差分析能夠告訴你,用這個插值方法來逼近數值函數,精度能達到多少,如果精度在能夠接受的範圍內,那麼這個插值方法就可以用來解決問題。

常用的函數插值方法有多項式插值,三角插值,分段插值,樣條插值等,這些插值方法各有各的特點,適合全部掌握,因爲在實際的應用過程中,如果沒有全部掌握,遇到問題之後,你可能不知道採取那種插值方法比較好。

常用的插值方法

這些插值方法細節公式的推導我就不贅述了,這裏只分享寫下我個人對這些方法在應用方面的理解,如果有錯誤的地方,同時也希望大家及時指出,我們一起進步。

拉格朗日插值

按理來說,拉格朗日插值法可以很好地得到多項式插值函數,也就是下面這個公式。
在這裏插入圖片描述
其中
在這裏插入圖片描述
但是,拉格朗日插值多項式在實際應用中幾乎不會被用到,主要有兩個原因。第一個原因是隨着插值結點的增減時,計算要全部重新進行,也就是上面的p_j(x)的公式會完全改變,又要重新計算,這樣很不方便。第二個原因是直接用拉格朗日插值方法的話,得到的是高次插值多項式,高次插值多項式會出現龍格現象,什麼是龍格現象,百度一下就知道了。

牛頓插值

給定了插值結點之後,多項式插值公式是唯一的,也就是說,拉格朗日方法得到的插值公式和牛頓方法得到的插值公式是一樣的。那麼問題就來了,既然最終得到的插值公式是一樣的,我爲什麼要用牛頓插值而不用拉格朗日插值呢?這正是因爲拉格朗日方法有第一個缺陷,也就是改變數值結點數量之後,計算會大變,爲了克服這個缺點,所以才誕生了牛頓插值方法。牛頓插值方法的公式如下。
在這裏插入圖片描述
其中
在這裏插入圖片描述
從牛頓插值方法的公式可以看出,每當數值結點增加一個時,前面的項可以保持不變,只需在後面添加f[x0,…,xn]*(x-x0)…(x-xn)這一項即可,而f[x0,…,xn]的計算也只需要利用一下f[x1,…,xn]和f[x0,…,xn-1]的結果即可。所以牛頓方法相比於拉格朗日方法更加適合於大型計算。
但是在實際應用中,也不會有人直接利用牛頓插值多項式進行插值,因爲直接利用牛頓插值多項式是高次插值,會有龍格現象,爲了克服這個缺陷,就有了後面的分段低次插值。

分段低次插值

因爲用高次多項式插值會出現龍格現象,會使插值效果很差,所以一般採用的是分段低次插值,比如分段三次插值就是每取三個點進行一下拉格朗日插值或者牛頓插值,得到的插值函數是一個首尾相接的分段三次函數。這樣得到的插值函數不會偏離真實函數太多,但是也有一個缺陷就是,在分段點處不光滑,也就是不可導,更別說讓插值函數的導數等於真實函數的導數。

埃爾米特插值

爲了克服分段低次插值不光滑的缺點,所以誕生了埃爾米特插值。埃爾米特插值不僅要求插值點處的插值函數的函數值等於真實函數的函數值,而且要求插值點處的導數值也要等於真實函數的導數值,這就增加了插值函數的光滑性,讓插值函數更好的貼合真實函數。埃爾米特插值方法沒有固定的公式,但是求解起來也沒有那麼複雜,求解方法有一般的套路,如待定係數法。不要忘記,其實taylor展開式也是一種埃爾米特插值。

三次樣條插值

三次樣條插值既是低次插值,又具有二階光滑性,因此,它是最最常用的一種插值方法。但是三次樣條插值的求解方法相對複雜一些,實際計算時還需要引入邊界條件才能完成計算。一般的計算方法書上都沒有說明非扭結邊界的定義,但數值計算軟件如Matlab都把非扭結邊界條件作爲默認的邊界條件。

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