数值分析-插值


前言

设函数 y = f ( x ) y=f(x) y=f(x)在区间(a,b)上有定义,且知在点 a ≤ x 0 < x 1 < . . . . < x n ≤ b a\leq x_0<x_1<....<x_n\leq b ax0<x1<....<xnb上的值 y 0 , y 1 . . . y n y_0,y_1...y_n y0,y1...yn,若存在一简单函数 P ( x ) P(x) P(x),使 P ( x i ) = y i , i = 0 , 1 , . . . n P(x_i)=y_i,i=0,1,...n Pxi=yi,i=0,1,...n,则称 P ( X ) P(X) P(X) f ( x ) f(x) f(x)的插值函数, x 0 , x 1 . . . x n x_0,x_1...x_n x0,x1...xn为插值节点
P ( x ) = a 0 + a 1 x 1 + a 2 x 2 + . . . . . + a n x n P(x)=a_0+a_1x_1+a_2x_2+.....+a_nx_n P(x)=a0+a1x1+a2x2+.....+anxn, 且 a i a_i ai为实数,就称 P ( x ) P(x) P(x)为插值多项式,满足条件 P ( x i ) = y i , i = 0 , 1 , . . . n P(x_i)=y_i,i=0,1,...n Pxi=yi,i=0,1,...n的插值多项式存在且唯一,拉格朗日插值和牛顿插值形式不同,余项是相等的。

一、拉格朗日插值

(1)通用步骤:
(已知n+1个插值节点 x 0 , x 1 . . . x n x_0,x_1...x_n x0,x1...xn和其对应的函数值 y 0 , y 1 . . . y n y_0,y_1...y_n y0,y1...yn

步骤操作
计算 ω n + 1 ( x ) \omega_{n+1}(x) ωn+1(x) ω n + 1 ( x ) = ∏ i = 0 n ( x − x i ) \omega_{n+1}(x)=\prod_{i=0}^n (x-x_i) ωn+1(x)=i=0n(xxi)
计算插值基函数 l k ( x ) l_k(x) lk(x) l k ( x ) = ( x − x 0 ) . . . ( x − x k − 1 ) ( x − x k + 1 ) . . . ( x − x n ) ( x k − x 0 ) . . . ( x k − x k − 1 ) ( x k − x k + 1 ) . . . ( x k − x n ) = ω n + 1 ( x ) ( x − x k ) ω n + 1 ′ ( x k ) k = 0 , 1 , . . . n l_k(x)=\frac{(x-x_0)...(x-x_{k-1})(x-x_{k+1})...(x-x_n)}{(x_k-x_0)...(x_k-x_{k-1})(x_k-x_{k+1})...(x_k-x_n)}=\frac{\omega_{n+1}(x)}{(x-x_k)\omega^{'}_{n+1}(x_k)} k=0,1,...n lk(x)=(xkx0)...(xkxk1)(xkxk+1)...(xkxn)(xx0)...(xxk1)(xxk+1)...(xxn)=(xxk)ωn+1(xk)ωn+1(x)k=0,1,...n
计算 L a g r a n g e Lagrange Lagrange多项式 L n ( x ) L_n(x) Ln(x) L n ( x ) = ∑ k = 0 n y k l k ( x ) L_n(x)=\sum_{k=0}^ny_kl_k(x) Ln(x)=k=0nyklk(x)
计算插值余项 R n ( x ) R_n ( x ) Rn(x) R n ( x ) = f ( x ) − L n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ω n + 1 ( x ) R_n ( x )=f(x)-L_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x) Rn(x)=f(x)Ln(x)=(n+1)!f(n+1)(ξ)ωn+1(x)
截断误差限 M n + 1 = m a x a < x < b ∣ f n + 1 ( x ) ∣ M_{n+1}=max_{a<x<b}\lvert f^{n+1}(x)\rvert Mn+1=maxa<x<bfn+1(x); R n ( x ) ≤ M n + 1 ( n + 1 ) ! ω n + 1 ( x ) R_n ( x )\leq \frac{M_{n+1}}{(n+1)!}\omega_{n+1}(x) Rn(x)(n+1)!Mn+1ωn+1(x)

(2)分段线性插值
通过插值点用折线段连接起来逼近 f ( x ) f(x) f(x),已知n+1个插值节点 x 0 , x 1 . . . x n x_0,x_1...x_n x0,x1...xn和其对应的函数值 y 0 , y 1 . . . y n y_0,y_1...y_n y0,y1...yn,记 h k = x k + 1 − x k , h = m a x h k h_k=x_{k+1}-x_{k},h=maxh_k hk=xk+1xk,h=maxhk,折线函数 I h ( x ) I_h(x) Ih(x)满足:
(1) I h ( x ) ∈ C [ a , b ] I_h(x)\in C[a,b] Ih(x)C[a,b]
(2) I h ( x k ) = f k ; ( k = 0 , 1 , 2... n ) I_h(x_k)=f_k ;(k=0,1,2...n) Ih(xk)=fk;(k=0,1,2...n)
(3) I h ( x ) I_h(x) Ih(x)在每个小区间 [ x k , x k + 1 ] [x_k,x_{k+1}] [xk,xk+1]上是线性函数

表达式余项
I h ( x ) = x − x k + 1 x k − x k + 1 f k + x − x k x k + 1 − x k f k + 1 I_h(x)=\frac{x-x_{k+1}}{x_{k}-x_{k+1}}f_k+\frac{x-x_{k}}{x_{k+1}-x_{k}}f_{k+1} Ih(x)=xkxk+1xxk+1fk+xk+1xkxxkfk+1 x k ≤ x ≤ x k + 1 x_{k}\leq x\leq x_{k+1} xkxxk+1,k=0,1,…,n-1 R n ( x ) = f ( x ) − I h ( x ) ≤ M 2 2 m a x ( x − x k ) ( x − x k + 1 ) R_n ( x )=f(x)-I_h(x)\leq \frac{M_2}{2} max(x-x_k)(x-x_{k+1}) Rn(x)=f(x)Ih(x)2M2max(xxk)(xxk+1) ≤ M 2 8 h 2 \leq \frac{M_2}{8}h^2 8M2h2,其中 M 2 = m a x ∣ f ′ ′ ( x ) ∣ M_2=max\lvert f^{''}(x)\rvert M2=maxf(x)

二、均差与牛顿插值多项式

1.插值多项式的逐次生成

拉格朗日插值在节点增减时会计算要重新进行,为了计算方便重新设计了一种逐次生成插值多项式的方法,即牛顿插值 P n ( X ) P_n(X) Pn(X)

n = 0 n=0 n=0,一个节点的0次插值
P 0 ( X ) = f ( x 0 ) P_0(X)=f(x_0) P0(X)=f(x0)
n = 1 n=1 n=1,两个节点的一次插值, f [ x 0 , x 1 ] ( x − x 0 ) f[x_0,x_1](x-x_0) f[x0,x1](xx0)可以看作是对0次插值 P 0 ( X ) = f ( x 0 ) P_0(X)=f(x_0) P0(X)=f(x0)的修正
P 1 ( X ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) , 将 节 点 带 入 解 得 f [ x 0 , x 1 ] = f ( x 1 ) − f ( x 0 ) x 1 − x 0 P_1(X)=f(x_0)+f[x_0,x_1](x-x_0),将节点带入解得f[x_0,x_1]= \frac{f(x_1)-f(x_0)}{x_1-x_0} P1(X)=f(x0)+f[x0,x1](xx0)f[x0,x1]=x1x0f(x1)f(x0)
n = 2 n=2 n=2,三个节点的二次插值
P 2 ( X ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) , 将 节 点 带 入 解 得 f [ x 0 , x 1 , x 2 ] = f [ x 0 , x 1 ] − f [ x 1 , x 2 ] x 0 − x 2 P_2(X)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1),将节点带入解得f[x_0,x_1,x_2]= \frac{f[x_0,x_1]-f[x_1,x_2]}{x_0-x_2} P2(X)=f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)f[x0,x1,x2]=x0x2f[x0,x1]f[x1,x2]

规律总结,n个节点的n次插值多项式
P 2 ( X ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + . . . + f [ x 0 , x 1 , . . . , x n ] ( x − x 0 ) ( x − x 1 ) . . . ( x − x n − 1 ) P_2(X)=f(x_0)+f[x_0,x_1](x-x_0)+...+f[x_0,x_1,...,x_n](x-x_0)(x-x_1)...(x-x_{n-1}) P2(X)=f(x0)+f[x0,x1](xx0)+...+f[x0,x1,...,xn](xx0)(xx1)...(xxn1)

2.差商及其性质

定义:k阶均差
f [ x 0 , x 1 , . . . , x k ] = f [ x 0 , x 1 , . . . , x k − 2 , x k ] − f [ x 0 , x 1 , . . . , x k − 2 , x k − 1 ] x k − x k − 1 f[x_0,x_1,...,x_k]=\frac{f[x_0,x_1,...,x_{k-2},x_{k}]-f[x_0,x_1,...,x_{k-2},x_{k-1}]}{x_k-x_{k-1}} f[x0,x1,...,xk]=xkxk1f[x0,x1,...,xk2,xk]f[x0,x1,...,xk2,xk1]
基本性质:
(1)k阶均差可表示为函数值 f ( x 0 ) , f ( x 1 ) , f ( x 2 ) . . . . . f ( x k ) f(x_0),f(x_1),f(x_2).....f(x_k) f(x0),f(x1),f(x2).....f(xk)的线性组合,均差的值与节点的排列次序无关,即 f [ x 0 , x 1 , . . . , x k ] = f [ x 1 , x 0 , . . . , x k ] = . . . = f [ x k , x 1 , . . . , x 0 ] f[x_0,x_1,...,x_k]=f[x_1,x_0,...,x_k]=...=f[x_k,x_1,...,x_0] f[x0,x1,...,xk]=f[x1,x0,...,xk]=...=f[xk,x1,...,x0],k阶均差的定义等式右边可以变换
(2)若 f ( x ) f(x) f(x)在[a,b]上存在n阶导数,已知有n个节点 x 0 , x 1 , x 2 , . . . , x n ∈ [ a , b ] x_0,x_1,x_2,...,x_n\in[a,b] x0,x1,x2,...,xn[a,b],n阶均差与导数的关系为
f [ x 1 , x 0 , . . . , x n ] = f ( n ) ( ξ ) n ! , ξ ∈ [ a , b ] f[x_1,x_0,...,x_n]=\frac{f^{(n)}(\xi)}{n!},\xi\in[a,b] f[x1,x0,...,xn]=n!f(n)(ξ),ξ[a,b]
(3)差商表
在这里插入图片描述

3.差分

定义:在实际情况中,经常会用等距节点进行插值,即 x k = x 0 + k h x_k=x_0+kh xk=x0+kh的情形,这里h称为步长,此时插值公式可以得到简化,设 x k x_k xk点的函数值为 f k = f ( x k ) ( k = 0 , 1 , 2.... n ) f_k=f(x_k)(k=0,1,2....n) fk=f(xk)(k=0,1,2....n),称 Δ f k = f k + 1 − f k \Delta f_k=f_{k+1}-f_k Δfk=fk+1fk x k x_k xk处以h为步长的一阶(向前)差分,类似称 Δ 2 f k = Δ f k + 1 − Δ f k \Delta ^2 f_k=\Delta f_{k+1}-\Delta f_k Δ2fk=Δfk+1Δfk x k x_k xk处的二阶差分。
Δ n f k = Δ n − 1 f k + 1 − Δ n − 1 f k \Delta ^n f_k=\Delta^{n-1} f_{k+1}-\Delta^{n-1} f_k Δnfk=Δn1fk+1Δn1fk
差分与差商的关系:
f [ x k , . . . . , x k + m ] = 1 m ! 1 h m Δ m f k , m = 1 , 2... n f[x_k,....,x_{k+m}]=\frac{1}{m!}\frac{1}{h^m}\Delta ^m f_k,m=1,2...n f[xk,....,xk+m]=m!1hm1Δmfk,m=1,2...n
差分与导数的关系:
Δ n f k = h n f n ( ξ ) , 其 中 ξ ∈ ( x k , x k + 1 ) \Delta ^n f_k=h^nf^n(\xi),其中\xi\in(x_k,x_{k+1}) Δnfk=hnfn(ξ),ξ(xk,xk+1)
牛顿前插公式
P n ( x 0 + t h ) = f 0 + t Δ f 0 + t ( t − 1 ) 2 ! Δ 2 f 0 + . . . . + t ( t − 1 ) . . . ( t − n + 1 ) n ! Δ n f 0 P_{n}(x_0+th)=f_0+t\Delta f_0+\frac{t(t-1)}{2!}\Delta^2 f_0+....+\frac{t(t-1)...(t-n+1)}{n!}\Delta^n f_0 Pn(x0+th)=f0+tΔf0+2!t(t1)Δ2f0+....+n!t(t1)...(tn+1)Δnf0
插值节点 x 0 , x 0 + h , x 0 + 2 h , . . . . . . , x 0 + n h x_0,x_0+h,x_0+2h,......,x_0+nh x0,x0+h,x0+2h,......,x0+nh f ( x 0 + t h ) f(x_0+th) f(x0+th),t一般不是整数,且 t ∈ [ 0 , n ] t\in[0,n] t[0,n],才可得其余项得计算公式。

4.牛顿插值的极限形式

f ∈ C n [ a , b ] , x 0 , x 1 , . . . . , x n f\in C^n[a,b],x_0,x_1,....,x_n fCn[a,b],x0,x1,....,xn [ a , b ] [a,b] [a,b]上相异的节点,则 f [ x 0 , x 1 , . . . . , x n ] f[x_0,x_1,....,x_n] f[x0,x1,....,xn]是其变量连续的函数,如果 [ a , b ] [a,b] [a,b]上的节点互异,根据均差的定义,若 f ∈ C 1 [ a , b ] f\in C^1[a,b] fC1[a,b],则有
lim ⁡ x →   x 0 f [ x 0 , x ] = lim ⁡ x →   x 0 f ( x ) − f ( x 0 ) x − x 0 = f ′ ( x 0 ) \lim_{x\to\ {x_0}} f[x_0,x]=\lim_{x\to\ {x_0}} \frac{f(x)-f(x_0)}{x-x_0} = f^{'}(x_0) x x0limf[x0,x]=x x0limxx0f(x)f(x0)=f(x0)
一般的可定义n重节点的均差
f [ x 0 , x 0 , x 0 . . . . x 0 ] = lim ⁡ x i →   x 0 f [ x 0 , x 1 , . . . . , x n ] = 1 n ! f ( n ) ( x 0 ) f[x_0,x_0,x_0....x_0]=\lim_{x_i\to\ {x_0}}f[x_0,x_1,....,x_n]= \frac{1}{n!} f^{(n)}(x_0) f[x0,x0,x0....x0]=xi x0limf[x0,x1,....,xn]=n!1f(n)(x0)
在牛顿插值多项式中,若令 x i → x 0 ( i = 1 , 2 , 3 , 4.... n ) x_i\to x_0(i=1,2,3,4....n) xix0(i=1,2,3,4....n),可得泰勒多项式
P n ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + . . . + f ( n ) ( x 0 ) n ! ( x − x 0 ) n P_n(x)=f(x_0)+f^{'}(x_0)(x-x_0)+...+ \frac{ f^{(n)}(x_0)}{n!}(x-x_0)^n Pn(x)=f(x0)+f(x0)(xx0)+...+n!f(n)(x0)(xx0)n

二、插值余项与误差估计

插值余项
R n ( x ) = f ( x ) − L n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ω n + 1 ( x ) R_n ( x )=f(x)-L_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x) Rn(x)=f(x)Ln(x)=(n+1)!f(n+1)(ξ)ωn+1(x)

误差估计
∣ R n ( x ) ∣ ≤ M n + 1 ( n + 1 ) ! ∣ ω n + 1 ( x ) ∣ , M n + 1 = m a x a < x < b ∣ f ( n + 1 ) ( x ) ∣ |R_n ( x )|\leq \frac{M_{n+1}}{(n+1)!}|\omega_{n+1}(x)|,M_{n+1}=\underset{a<x<b}{max}\lvert f^{(n+1)}(x)\rvert Rn(x)(n+1)!Mn+1ωn+1(x),Mn+1=a<x<bmaxf(n+1)(x)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值