插值法
本文参考书为马东升著《数值计算方法》
代数插值
-
插值
已知某些(有限)点的函数值求其余点的函数值
-
代数多项式插值
n + 1 n+1 n+1 个互异节点处满足插值条件 P ( x i ) = y i , i = 0 , 1 , ⋯ , n P(x_i)=y_i\ ,i=0,1,\cdots,n P(xi)=yi ,i=0,1,⋯,n 的 n n n 次代数多项式 P ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ + a n x n P(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n P(x)=a0+a1x+a2x2+⋯+anxn 是唯一的
当 f ( x ) f(x) f(x) 是次数不超过 n n n 的多项式时,其 n n n 次插值多项式就是 f ( x ) f(x) f(x) 本身
例: 已知函数 f ( x ) = 56 x 3 + 24 x 2 + 5 f(x)=56x^3+24x^2+5 f(x)=56x3+24x2+5 在点 2 0 , 2 1 , 2 5 , 2 7 2^0,2^1,2^5,2^7 20,21,25,27 的函数值,求其三次插值多项式
解: 因为 f ( x ) f(x) f(x) 次数为 3 3 3 不超过三次,且其为多项式,故其三次插值多项式 P ( x ) = f ( x ) = 56 x 3 + 24 x 2 + 5 P(x)=f(x)=56x^3+24x^2+5 P(x)=f(x)=56x3+24x2+5
-
抛物线(二次)插值
已知 f ( x ) f(x) f(x) 在三个互异点 x 0 , x 1 , x 2 x_0\ ,x_1\ ,x_2 x0 ,x1 ,x2 的函数值 y 0 , y 1 , y 2 y_0\ ,y_1\ ,y2 y0 ,y1 ,y2 构造一个次数不超过二次的多项式
P ( x ) = a 0 + a x + a 2 x 2 P(x)=a_0+a_x+a_2x^2 P(x)=a0+ax+a2x2
使其满足插值条件
P ( x i ) = y i , ( i = 0 , 1 , 2 ) P(x_i)=y_i\quad,\ (i=0,1,2) P(xi)=yi, (i=0,1,2)
拉格朗日插值
-
线性插值
已知 f ( x 0 ) = y 0 , f ( x 1 ) = y 1 , x 0 ≠ x 1 f(x_0)=y_0\ ,f(x_1)=y_1\ ,x_0\ne x_1 f(x0)=y0 ,f(x1)=y1 ,x0=x1 要构造线性函数 P ( x ) = a 0 + a 1 x P(x)=a_0+a_1x P(x)=a0+a1x ,使其满足插值条件 P ( x 0 ) = y 0 , P ( x 1 ) = y 1 P(x_0)=y_0\ ,P(x_1)=y_1 P(x0)=y0 ,P(x1)=y1
y − y 0 x − x 0 = y 1 − y 0 x 1 − x 0 P ( x ) = y 0 + y 1 − y 0 x 1 − x 0 ( x − x 0 ) \dfrac {y-y_0}{x-x_0}=\dfrac {y_1-y_0}{x_1-x_0}\ \ \ \ \ \ P(x)=y_0+\dfrac {y_1-y_0}{x_1-x_0}(x-x_0) x−x0y−y0=x1−x0y1−y0 P(x)=y0+x1−x0y1−y0(x−x0)
表达式为
P ( x ) = ( x − x 1 x 0 − x 1 ) y 0 + ( x − x 0 x 1 − x 0 ) y 1 = l 0 ( x ) y 0 + l 1 ( x ) y 1 P(x)=(\dfrac {x-x_1}{x_0-x_1})y_0+(\dfrac {x-x_0}{x_1-x_0})y_1=l_0(x)y_0+l_1(x)y_1 P(x)=(x0−x1x−x1)y0+(x1−x0x−x0)y1=l0(x)y0+l1(x)y1
公式的结构,它是两个一次函数的线性组合线性插值基函数
l 0 ( x ) = x − x 1 x 0 − x 1 , l 1 ( x ) = x − x 0 x 1 − x 0 l_0(x)=\dfrac {x-x_1}{x_0-x_1}\ \ ,\ l_1(x)=\dfrac {x-x_0}{x_1-x_0} l0(x)=x0−x1x−x1 , l1(x)=x1−x0x−x0例: 给定平方表
x 100 121 y 10 11 试用线性插值求 115 115 115 的平方根
解: x 0 = 100 , x 1 = 121 , x = 115 x_0=100\ ,x_1=121\ ,x=115 x0=100 ,x1=121 ,x=115
故 P ( x ) = ( x − x 1 x 0 − x 1 ) y 0 + ( x − x 0 x 1 − x 0 ) y 1 P(x)=(\dfrac {x-x_1}{x_0-x_1})y_0+(\dfrac {x-x_0}{x_1-x_0})y_1 P(x)=(x0−x1x−x1)y0+(x1−x0x−x0)y1
115 ≈ P ( 115 ) = 10.714 \sqrt {115}\approx P(115)=10.714 115≈P(115)=10.714
-
抛物线插值
已知 f ( x ) f(x) f(x) 在三个互异点 x 0 , x 1 , x 2 x_0\ ,x_1\ ,x_2 x0 ,x1 ,x2 的函数值 y 0 , y 1 , y 2 y_0\ ,y_1\ ,y2 y0 ,y1 ,y2 构造一个次数不超过二次的多项式
P ( x ) = a 0 + a x + a 2 x 2 P(x)=a_0+a_x+a_2x^2 P(x)=a0+ax+a2x2
使其满足插值条件
P ( x i ) = y i , ( i = 0 , 1 , 2 ) P(x_i)=y_i\quad,\ (i=0,1,2) P(xi)=yi, (i=0,1,2)
表达式为
P ( x ) = l 0 ( x ) y 0 + l 1 ( x ) y 1 + l 2 ( x ) y 2 P(x)=l_0(x)y_0+l_1(x)y_1+l_2(x)y_2 P(x)=l0(x)y0+l1(x)y1+l2(x)y2
其中插值基函数为
l 0 = ( x − x 1 ) ( x − x 2 ) ( x 0 − x 1 ) ( x 0 − x 2 ) l 1 = ( x − x 0 ) ( x − x 2 ) ( x 1 − x 0 ) ( x 1 − x 2 ) l 2 = ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) l_0=\dfrac {(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}\quad l_1=\dfrac {(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}\quad l_2=\dfrac {(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} l0=(x0−x1)(x0−x2)(x−x1)(x−x2)l1=(x1−x0)(x1−x2)(x−x0)(x−x2)l2=(x2−x0)(x2−x1)(x−x0)(x−x1)例: 已知 100 , 121 , 144 100,121,144 100,121,144 的平方根,计算 115 115 115 的平方根的近似值
x 100 121 144 y 10 11 12 解: P ( x ) = ( x − 121 ) ( x − 144 ) ( 100 − 121 ) ( 100 − 144 ) × 10 + ( x − 100 ) ( x − 144 ) ( 121 − 100 ) ( 121 − 144 ) × 11 + ( x − 100 ) ( x − 121 ) ( 144 − 100 ) ( 144 − 121 ) × 12 P(x)=\dfrac {(x-121)(x-144)}{(100-121)(100-144)}\times 10+\dfrac {(x-100)(x-144)}{(121-100)(121-144)}\times 11+\dfrac {(x-100)(x-121)}{(144-100)(144-121)}\times 12 P(x)=(100−121)(100−144)(x−121)(x−144)×10+(121−100)(121−144)(x−100)(x−144)×11+(144−100)(144−121)(x−100)(x−121)×12
f ( 115 ) ≈ P ( 115 ) = 10.7228 f(115)\approx P(115)=10.7228 f(115)≈P(115)=10.7228
-
拉格朗日插值多项式
- 若 l k ( x ) = ∏ i = 0 , i ≠ k n