Lagrange插值的C语言编程
线性插值
给出两点(x , y ),i 0,1 ,则有线性插值函数
i i
x −x x −x
1 0
L (x ) l (x )y =+l (x )y y =+ y
1 0 0 1 1 0 1
x −x x −x
0 1 1 0
抛物插值
给出三点(x , y ),i 0,1,2 ,则有三点抛物线插值函数
i i
(x −x1)(x −x 2 ) (x −x0 )(x −x2 ) (x −x0 )(x −x1 )
L2 (x ) y0 =+ y1 + y2
(x0 −x1 )(x0 −x2 ) (x1 −x0 )(x1 −x2 ) (x2 −x0 )(x2 −x1 )
Lagrange 插值函数的一般形式
N
两点线性插值函数和三点抛物线插值函数属于 Lagrange 插值中比较常用的低次插值,对于 个点
(x , y ),i 0,1,2, …,N - 2,N -1 的Lagrange 插值函数的一般形式为:
i i
(x −x )(x −x )…(x −x )(x −x ) (x −x )(x −x )…(x −x )(x −x )
Ln−1(x ) 1 2 n−2 n−1 y 0 =+ 0 2 n−2 n−1 y1 +…
(x −x )(x −x )…(x −x )(x −x ) (x −x )(x −x )…(x −x )(x −x )
0 1 0 2 0 n−2 0 n−1 1 0 1 2 1 n−2 1 n−1
(x −x )(x −x )…(x −x )(x −x )
1 2 n−3 n−2
+ y n−1
(x −x )(x −x )…( − )( − )
x x x x
n−1 1 n−1 2 n−1