牛顿插值法与拉格朗日插值法——实例

参考自:知乎 马同学,他的微信公众号: 看图学数学,公众号: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

可见,结果一样,但是拉格朗日插值法比较复杂。关于两者的用途,精度还需讨论。

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