在工程應用和科學研究中,經常要研究變量之間的關系y=f(x)。但對于函數f(x),常常得不到一個具體的解析表達式,它可能是通過觀測或實驗得到的一組資料(x,f(x)),x為一向量;或則是解析表達式非常複雜,不便于計算和使用。是以我們需要尋找一個計算比較簡單的函數S(x)近似代替f(x),并使得S(x)=f(x),這種方法就稱為插值法。
常用的插值法有:
一維插值法:拉格朗日插值、牛頓插值、分段低次插值、埃爾米特插值、樣條插值。
二維插值法:雙線性插值、雙二次插值。
已知函數f(x)的n+1個互異的節點
處的函數值
,則其拉格朗日插值多項式可以寫為:
其中,
為插值基函數,其表達式為:
已知函數f(x)的n+1個互異的節點
,則其牛頓插值多項式可以寫為:
為f(x)的k階差商(也叫均差),可以表示如下:
也可以由函數值
線性表示為:
根據上述基本原理和公式,很容易程式設計實作。我們假設根據下面的資料表,來分别用拉格朗日插值和牛頓插值來計算f(8.4)的近似值:
x
8.1
8.3
8.6
8.7
f(x)
16.94410
17.56492
18.50515
18.82091
具體代碼實作如下:
程式運作結果如下:
優缺點比較:
拉格朗日插值法:插值多項式和插值基函數的形式對稱,容易程式設計。但是,增加節點時,需要重新計算每一個插值基函數。
牛頓插值法:當插值節點增加時,之前已計算的結果仍然能用,每增加一個節點,隻要再增加一項即可,進而避免了重複性計算。
牛頓插值函數如下:
為了使用上面兩個函數,腳本檔案如下:
結果顯示如下:
作者:nineheadedbird