牛頓插值法與拉格朗日插值法——實例

參考自:知乎 馬同學,他的微信公衆號: 看圖學數學,公衆號:matongxue314

 

已知(x1,y1) (x2,y2) (x3,y3)三個點,分別求取兩種插值公式

1.牛頓插值公式

過前兩個點的函數f
f = y1 + a1*(x - x1)     將(x2,y2)帶入得 a1=y1+(y2-y1)/(x2-x1)*(x-x1)

過三個點的函數f'
f' = y1 + a1*(x - x1) + a2*(x - x1)*(x - x2)  將(x3,y3)帶入得 [(y3-y2)/(x3-x2) + (y2-y1)/(x2-x1)] / (x3-x1)

如何得出a2 ?
y3 = y1 + a1*(x3 - x1) + a2*(x3 - x1)*(x3 - x2) 式1
將 x3-x1 = x3-x2 + x2-x1 帶入式1得 a2

 

2. 拉格朗日插值公式

過三個點的函數f
f = y1*f1(x) + y2*f2(x) + y3*f3(x)
當 x=x1 時  f(x1) = y1  即 f1(x1)爲1,f2(x1)爲0,f3(x1)爲0
當 x=x2 時  f(x2) = y2  即 f1(x2)爲0,f2(x2)爲1,f3(x2)爲0
當 x=x3 時  f(x3) = y3  即 f1(x3)爲0,f2(x3)爲0,f3(x3)爲1
即要得到這樣的 fi(xj) 使得 i != j時 fi爲0,i = j時 fi爲1

取爲:
f1 = [(x-x2)(x-x3)] / [(x1-x2)(x1-x3)]
f2 = [(x-x1)(x-x3)] / [(x2-x1)(x2-x3)]
f3 = [(x-x1)(x-x2)] / [(x3-x1)(x3-x2)]

3. 實例
取函數 y=3x+x**2+1 上的三點  (0,1)  (2,11)  (3,19)

牛頓插值法,得a1=5  a2=1
f = 1 + 5*(x-0) + (x-0)*(x-2) = x**2 + 3x + 1

拉格朗日插值法,得
f1=[(x-2)(x-3)] / [(0-2)(0-3)]   
f2=[(x-0)(x-3)] / [(2-0)(2-3)]
f3=[(x-0)(x-2)] / [(3-0)(3-2)]
f = f1*1 + f2*11 + f3*19 = x**2 + 3x + 1

可見,結果一樣,但是拉格朗日插值法比較複雜。關於兩者的用途,精度還需討論。

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