五、插值法

1 拉格朗日插值

1.1 多项式插值

用多项式作为研究插值的工具,称为代数插值,其基本问题是:已知函数 f ( x ) f(x) f(x)在区间 [ a , b ] [a,b] [a,b] n + 1 n+1 n+1个不同点 x 0 , x 1 , … , x n x_0,x_1,\dots,x_n x0,x1,,xn处的函数值 y i = f ( x i ) ( i = 0 , 1 , … , n ) y_i=f(x_i)(i=0,1,\dots,n) yi=f(xi)(i=0,1,,n),求一个至多 n n n次的多项式:

φ n ( x ) = a 0 + a 1 x + ⋯ + a n x n ( 5 − 1 ) \varphi_n(x)=a_0+a_1x+\cdots+a_nx^n\quad\quad\quad\quad\quad(5-1) φn(x)=a0+a1x++anxn(51)

使其在给定点处与 f ( x ) f(x) f(x)同值,即满足插值条件

φ n ( x i ) = f ( x i ) = y i   ( i = 0 , 1 , … , n ) ( 5 − 2 ) \varphi_n(x_i)=f(x_i)=y_i\ (i=0,1,\dots,n)\quad\quad\quad\quad\quad(5-2) φn(xi)=f(xi)=yi (i=0,1,,n)(52)

φ n ( x ) \varphi_n(x) φn(x)称为插值多项式, x i ( i = 0 , 1 , … , n ) x_i(i=0,1,\dots,n) xi(i=0,1,,n)称为插值节点,简称节点,[a,b]称为插值区间。

待补充 124

1.2 插值多项式的误差估计

插值多项式与被插函数之间的差:

R n ( x ) = f ( x ) − φ n ( x ) R_n(x)=f(x)-\varphi_n(x) Rn(x)=f(x)φn(x)

称为截断误差,又称为插值余项。

假定 f ( x ) f(x) f(x) 在区间 [ a , b ] [a,b] [a,b] n + 1 n+1 n+1 次连续可导,对 [ a , b ] [a,b] [a,b] 上任意点 x x x ,且 x ≠ x i ( i = 0 , 1 , … , n ) x\ne x_i(i=0,1,\dots,n) x=xi(i=0,1,,n) ,构造辅助函数:

ψ ( t ) = f ( t ) − φ n ( t ) − R n ( x ) w n + 1 ( x ) w n + 1 ( t ) ( 5 − 4 ) \psi(t)=f(t)-\varphi_n(t)-\frac{R_n(x)}{w_{n+1}(x)}w_{n+1}(t)\quad\quad\quad\quad\quad(5-4) ψ(t)=f(t)φn(t)wn+1(x)Rn(x)wn+1(t)(54)

其中 w n + 1 ( t ) = ∏ j = 0 n ( t − x j ) w_{n+1}(t)=\prod\limits_{j=0}^n(t-x_j) wn+1(t)=j=0n(txj),显然:

ψ ( x ) = f ( x ) − φ n ( x ) − R n ( x ) w n + 1 ( x ) w n + 1 ( x ) = 0 \psi(x)=f(x)-\varphi_n(x)-\frac{R_n(x)}{w_{n+1}(x)}w_{n+1}(x)=0 ψ(x)=f(x)φn(x)wn+1(x)Rn(x)wn+1(x)=0

由插值条件(5-2), R n ( x i ) = 0   ( i = 0 , 1 , … , n ) R_n(x_i)=0\ (i=0,1,\dots,n) Rn(xi)=0 (i=0,1,,n),故函数 ψ ( t ) \psi(t) ψ(t) 在区间 [ a , b ] [a,b] [a,b] 内至少有 n + 2 n+2 n+2 个零点 x , x 0 , x 1 , … , x n x,x_0,x_1,\dots,x_n x,x0,x1,,xn 。由罗尔(Rolle)定理,函数:

ψ ′ ( t ) = f ′ ( t ) − φ n ′ ( t ) − R n ( x ) w n + 1 ( x ) w n + 1 ′ ( t ) \psi'(t)=f'(t)-\varphi'_n(t)-\frac{R_n(x)}{w_{n+1}(x)}w'_{n+1}(t) ψ(t)=f(t)φn(t)wn+1(x)Rn(x)wn+1(t)

( a , b ) (a,b) (a,b)内至少有 n + 1 n+1 n+1个零点。反复使用罗尔定理,可以得出:

ψ ( n + 1 ) ( t ) = f ( n + 1 ) ( t ) − φ n ( n + 1 ) ( t ) − R n ( x ) w n + 1 ( x ) w n + 1 ( n + 1 ) ( t ) \psi^{(n+1)}(t)=f^{(n+1)}(t)-\varphi^{(n+1)}_n(t)-\frac{R_n(x)}{w_{n+1}(x)}w^{(n+1)}_{n+1}(t) ψ(n+1)(t)=f(n+1)(t)φn(n+1)(t)wn+1(x)Rn(x)wn+1(n+1)(t)

( a , b ) (a,b) (a,b)内至少有一个零点,设为 ξ \xi ξ,即:

ψ ( n + 1 ) ( ξ ) = 0 \psi^{(n+1)}(\xi)=0 ψ(n+1)(ξ)=0

因为 φ n ( t ) \varphi_n(t) φn(t)为至多 n n n次多项式, w ( n + 1 ) ( t ) w_{(n+1)}(t) w(n+1)(t)为最高次项系数为1的 n + 1 n+1 n+1次多项式,因而:

φ n ( n + 1 ) ( t ) ≡ 0 , w ( n + 1 ) ( n + 1 ) ( t ) = ( n + 1 ) ! \varphi_n^{(n+1)}(t)\equiv0\quad ,w_{(n+1)}^{(n+1)}(t)=(n+1)! φn(n+1)(t)0,w(n+1)(n+1)(t)=(n+1)!

于是有:

ψ ( n + 1 ) ( ξ ) = f ( n + 1 ) ( ξ ) − R n ( x ) w n + 1 ( x ) ( n + 1 ) !   = 0 \psi^{(n+1)}(\xi)=f^{(n+1)}(\xi)-\frac{R_n(x)}{w_{n+1}(x)}(n+1)!\ =0 ψ(n+1)(ξ)=f(n+1)(ξ)wn+1(x)Rn(x)(n+1)! =0

所以:

R n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! w n + 1 ( x ) , ξ ∈ ( a , b ) ( 5 − 5 ) R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}w_{n+1}(x),\quad\xi\in(a,b)\quad\quad\quad\quad\quad(5-5) Rn(x)=(n+1)!f(n+1)(ξ)wn+1(x),ξ(a,b)(55)

定理5.1

x 0 , x 1 , … , x n x_0,x_1,\dots,x_n x0,x1,,xn是区间 [ a , b ] [a,b] [a,b]上的互异节点, φ n ( x ) \varphi_n(x) φn(x)是过这组节点的 n n n次插值多项式。如果 f ( x ) f(x) f(x) [ a , b ] [a,b] [a,b] n + 1 n+1 n+1次连续可导,则对 [ a , b ] [a,b] [a,b]内任意点 x x x,插值余项为:

R n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! w n + 1 ( x ) , ξ ∈ ( a , b ) ( 5 − 5 ) R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}w_{n+1}(x),\quad \xi\in(a,b)\quad\quad\quad\quad(5-5) Rn(x)=(n+1)!f(n+1)(ξ)wn+1(x),ξ(a,b)(55)

1.3 Lagrange插值多项式

先讨论只有两个节点 x 0 , x 1   ( n = 1 ) x_0,x_1\ (n=1) x0,x1 (n=1) 的插值多项式。此时插值多项式应设为 φ 1 ( x ) = a 0 + a 1 x \varphi_1(x)=a_0+a_1x φ1(x)=a0+a1x,且满足插值条件:

φ 1 ( x 0 ) = a 0 + a 1 x 0 = y 0 = f ( x 0 ) φ 1 ( x 1 ) = a 0 + a 1 x 1 = y 1 = f ( x 1 ) \varphi_1(x_0)=a_0+a_1x_0=y_0=f(x_0)\\\varphi_1(x_1)=a_0+a_1x_1=y_1=f(x_1) φ1(x0)=a0+a1x0=y0=f(x0)φ1(x1)=a0+a1x1=y1=f(x1)

解此方程组得:

a 0 = y 1 x 0 − y 0 x 1 x 0 − x 1 , a 1 = y 0 − y 1 x 0 − x 1 a_0=\frac{y_1x_0-y_0x_1}{x_0-x_1},\quad\quad a_1=\frac{y_0-y_1}{x_0-x_1} a0=x0x1y1x0y0x1,a1=x0x1y0y1

所以,两个节点的一次插值多项式为:

φ 1 ( x ) = y 1 x 0 − y 0 x 1 x 0 − x 1 + y 0 − y 1 x 0 − x 1 x ( 5 − 6 ) \varphi_1(x)=\frac{y_1x_0-y_0x_1}{x_0-x_1}+\frac{y_0-y_1}{x_0-x_1}x\quad\quad\quad\quad(5-6) φ1(x)=x0x1y1x0y0x1+x0x1y0y1x(56)

此时是用过两点 ( x 0 , y 0 ) , ( x 1 , y 1 ) (x_0,y_0),(x_1,y_1) (x0,y0),(x1,y1)的直线 y = φ 1 ( x ) y=\varphi_1(x) y=φ1(x)近似曲线 y = f ( x ) y=f(x) y=f(x),故这种插值又称为线性插值。

如果将式(5-6)改写成以下形式:

φ 1 ( x ) = y 0 x − x 1 x 0 − x 1 + y 1 x − x 0 x 1 − x 0 x ( 5 − 7 ) \varphi_1(x)=y_0\frac{x-x_1}{x_0-x_1}+y_1\frac{x-x_0}{x_1-x_0}x\quad\quad\quad\quad(5-7) φ1(x)=y0x0x1xx1+y1x1x0xx0x(57)

式(5-7)中, φ 1 ( x ) \varphi_1(x) φ1(x)被表示为两个线性函数的线性组合,记:

l 0 ( x ) = x − x 1 x 0 − x 1 , l 1 ( x ) = x − x 0 x 1 − x 0 l_0(x)=\frac{x-x_1}{x_0-x_1},\quad\quad\quad l_1(x)=\frac{x-x_0}{x_1-x_0} l0(x)=x0x1xx1,l1(x)=x1x0xx0

显然,它们满足:

l 0 ( x 0 ) = 1 , l 0 ( x 1 ) = 0 l 1 ( x 0 ) = 0 , l 1 ( x 1 ) = 1 l_0(x_0)=1,\quad l_0(x_1)=0\\l_1(x_0)=0,\quad l_1(x_1)=1 l0(x0)=1,l0(x1)=0l1(x0)=0,l1(x1)=1

l i ( x )   ( i = 0 , 1 ) l_i(x)\ (i=0,1) li(x) (i=0,1)在对应的插值点 x i x_i xi处取值为1,在其他点处取值为0。不难想象,以对应点处的函数值为系数对它们作线性组合所得的函数,不仅仍是线性的,且必定满足插值条件。由此得到启发,当节点增多到n+1时,可以先构造n次多项式 l i ( x ) ( i = 0 , 1 , ⋯   , n ) l_i(x)(i=0,1,\cdots,n) li(x)(i=0,1,,n),它们满足:

l i ( x j ) = { 0 , j ≠ i 1 , j = i ( 5 − 8 ) l_i(x_j)=\begin{cases}0,\quad j\ne i\\1,\quad j=i\end{cases}\quad\quad\quad\quad(5-8) li(xj)={0,j=i1,j=i(58)

然后以对应点处的函数值为系数作线性组合,即得所要求的插值多项式。下面推导 l i ( x ) ( i = 0 , 1 , ⋯   , n ) l_i(x)(i=0,1,\cdots,n) li(x)(i=0,1,,n)的表达式。

由式(5-8),多项式 l i ( x ) l_i(x) li(x)有n个根 x j ( j = 0 , 1 , ⋯   , n , j ≠ i ) x_j(j=0,1,\cdots,n,j\ne i) xj(j=0,1,,n,j=i),且 l i ( x i ) = 1 l_i(x_i)=1 li(xi)=1,故它必定是以下形式:

l i ( x ) = ( x − x 0 ) ⋯ ( x − x i − 1 ) ( x − x i + 1 ) ⋯ ( x − x n ) ( x i − x 0 ) ⋯ ( x i − x i − 1 ) ( x i − x i + 1 ) ⋯ ( x i − x n ) = ∏ j = 0 , j ≠ i n x − x j x i − x j ( i = 0 , 1 , ⋯   , n ) ( 5 − 9 ) l_i(x)=\frac{(x-x_0)\cdots(x-x_{i-1})(x-x_{i+1})\cdots(x-x_n)}{(x_i-x_0)\cdots(x_i-x_{i-1})(x_i-x_{i+1})\cdots(x_i-x_n)}=\prod\limits_{j=0,j\ne i}^n\frac{x-x_j}{x_i-x_j}\quad(i=0,1,\cdots,n)\quad\quad\quad\quad(5-9) li(x)=(xix0)(xixi1)(xixi+1)(xixn)(xx0)(xxi1)(xxi+1)(xxn)=j=0,j=inxixjxxj(i=0,1,,n)(59)

这些函数称为Lagrange插值基函数。利用它们立即得出插值问题的解:

φ n ( x ) = ∑ i = 0 n y i l i ( x ) = ∑ i = 0 n y i ∏ j = 0 , j ≠ i n x − x j x i − x j ( 5 − 10 a ) \varphi_n(x)=\sum\limits_{i=0}^ny_il_i(x)=\sum\limits_{i=0}^ny_i\prod\limits_{j=0,j\ne i}^n\frac{x-x_j}{x_i-x_j}\quad\quad\quad\quad\quad(5-10a) φn(x)=i=0nyili(x)=i=0nyij=0,j=inxixjxxj(510a)

事实上,因为每个插值函数 l i ( x )   ( i = 0 , 1 , … , n ) l_i(x)\ (i=0,1,\dots,n) li(x) (i=0,1,,n)都是 n n n次多项式,故 φ n ( x ) \varphi_n(x) φn(x)是至多 n n n次多项式。由式(5-8)又得:

φ n ( x k ) = ∑ i = 0 n y i l i ( x k ) = y k ( k = 0 , 1 , … , n ) \varphi_n(x_k)=\sum\limits_{i=0}^ny_il_i(x_k)=y_k\quad(k=0,1,\dots,n) φn(xk)=i=0nyili(xk)=yk(k=0,1,,n)

φ n ( x ) \varphi_n(x) φn(x)满足插值条件(5-2)。

式(5-10a)称为 n n n次Lagrange插值多项式。为了便于区别,我们常用 L n ( x ) L_n(x) Ln(x)代替 φ n ( x ) \varphi_n(x) φn(x),以突出这是由Lagrange插值所得到的插值多项式,即:

L n ( x ) = ∑ i = 0 n y i l i ( x ) ( 5 − 10 b ) L_n(x)=\sum\limits_{i=0}^ny_il_i(x)\quad\quad\quad\quad\quad\quad(5-10b) Ln(x)=i=0nyili(x)(510b)

2 牛顿(Newton)插值

2.1 差商

定义5.1

设有函数 f ( x ) , x 0 , x 1 , x 2 , … f(x),x_0,x_1,x_2,\dots f(x),x0,x1,x2,为一系列互不相等的点,称 f ( x i ) − f ( x j ) x i − x j \frac{f(x_i)-f(x_j)}{x_i-x_j} xixjf(xi)f(xj) f ( x ) f(x) f(x)关于点 x i , x j x_i,x_j xi,xj的一阶差商(也称均差),记为 f [ x i , x j ] f[x_i,x_j] f[xi,xj],即:

$$$$

2.3 差分

当节点等距时,即相邻两个节点之差(称为步长)为常数,Newton插值公式的形式会更简单。此时关于节点间函数的平均变化率(差商)可用函数值之差(差分)来表示。

定义5.2

4 埃尔米特(Hermite)插值

如果对插值函数,不仅要求它在节点处与函数同值,而且要求它与函数有相同的一阶、二阶甚至更高阶的导数值,这就是Hermite插值问题。本节主要讨论在节点处插值函数与函数的值及一阶导数值均相等的Hermite插值。

4.1 Hermite插值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值