数值分析(3)-多项式插值: 牛顿插值法

    xiaoxiao2022-07-14  163

    整理一下数值分析的笔记~ 目录:

    1. 误差
    2. 多项式插值与样条插值(THIS)
    3. 函数逼近
    4. 数值积分与数值微分
    5. 线性方程组的直接解法
    6. 线性方程组的迭代解法
    7. 非线性方程求根
    8. 特征值和特征向量的计算
    9. 常微分方程初值问题的数值解

    1. 差商(均差)及其性质

    定义1.设 f ( x ) f(x) f(x)在互异节点 x i x_i xi处的函数值为 f i , i = 0 , 1 , . . . , n f_i,i=0,1,...,n fi,i=0,1,...,n,称 f [ x i , x j ] = f i − f j x i − x j f[x_i,x_j]=\frac{f_i-f_j}{x_i-x_j} f[xi,xj]=xixjfifj f ( x ) f(x) f(x)关于节点 x i , x j x_i,x_j xi,xj的一阶差商, f [ x i , x j , x k ] = f [ x i , x k ] − f [ x i , x j ] x k − x j f[x_i,x_j,x_k]=\frac{f[x_i,x_k]-f[x_i,x_j]}{x_k-x_j} f[xi,xj,xk]=xkxjf[xi,xk]f[xi,xj] f ( x ) f(x) f(x)关于 x i , x j , x k x_i,x_j,x_k xi,xj,xk的二阶差商,以此类推k阶差商: f [ x 0 , x 1 , . . . , x k − 1 , x k ] = f [ x 0 , x 1 , . . . , x k − 1 ] − f [ x 0 , x 1 , . . . , x k − 2 , x k ] x k − 1 − x k f[x_0,x_1,...,x_{k-1},x_k]=\frac{f[x_0,x_1,...,x_{k-1}]-f[x_0,x_1,...,x_{k-2},x_k]}{x_{k-1}-x_k} f[x0,x1,...,xk1,xk]=xk1xkf[x0,x1,...,xk1]f[x0,x1,...,xk2,xk]

    差商的性质:

    差商具有对称性,任意调换节点的次序,差商的值不变

    f k ( x ) f^{k}(x) fk(x)在包含节点 x 0 , x 1 , . . . , x k x_0,x_1,...,x_k x0,x1,...,xk的区间存在时,在 x 0 , x 1 , . . . , x k x_0,x_1,...,x_k x0,x1,...,xk之间必存在一点 ξ \xi ξ使得:

    f [ x 0 , x 1 , . . . , x k ] = f k ( ξ ) k ! f[x_0,x_1,...,x_k]=\frac{f^{k}(\xi)}{k!} f[x0,x1,...,xk]=k!fk(ξ)

    eg.给出函数y=f(x)的函数表,写出函数的查商表。

    i0123 x i x_i xi-2-112 f ( x i ) f(x_i) f(xi)531721

    如下:

    x i x_i xi f ( x i ) f(x_i) f(xi)一阶差商二阶差商三阶差商-25-13-2117732214-1-1

    2. 牛顿基本插值公式

    定义2.称多项式:

    N n ( x ) = a 0 + a 1 ( x − x 0 ) + a 2 ( x − x 0 ) ( x x 1 ) + . . . + a n ( x − x 0 ) ( x − x 1 ) . . . ( x − x n − 1 ) = f 0 + ∑ k = 1 n f [ x 0 , x 1 , . . . , x k ] ω k ( x ) 其 中 ω k ( x ) = ∏ j = 0 k − 1 ( x − x j ) N_n(x)=a_0+a_1(x-x_0)+a_2(x-x_0)(x_x1)+...+\\ a_n(x-x_0)(x-x_1)...(x-x_{n-1})\\ =f_0+\sum^{n}_{k=1}f[x_0,x_1,...,x_k]\omega_k(x)\\ 其中\omega_k(x)=\prod^{k-1}_{j=0}(x-x_j) Nn(x)=a0+a1(xx0)+a2(xx0)(xx1)+...+an(xx0)(xx1)...(xxn1)=f0+k=1nf[x0,x1,...,xk]ωk(x)ωk(x)=j=0k1(xxj)

    f ( x ) f(x) f(x)关于节点 x i x_i xi的n次Newton基本插值多项式,由于插值多项式具有唯一性,所以牛顿基本插值公式余项为:

    R n ( x ) = f ( x ) − N n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ω n + 1 ( x ) R_n(x)=f(x)-N_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x) Rn(x)=f(x)Nn(x)=(n+1)!f(n+1)(ξ)ωn+1(x)

    eg.给出f(x)的函数表,求四次牛顿插值多项式。

    x i x_i xi f ( x k ) f(x_k) f(xk)一阶均差二阶均差三阶均差四阶均差0.400.410750.550.578151.116000.650.696751.186000.280000.800.888111.275730.358930.197330.901.026521.384100.433480.213000.03134

    (五次均差较小近似0),按四次牛顿插值公式带入数据:

    N 4 ( x ) = 0.41075 + 1.116 ( x − 0.4 ) + 0.28 ( x − 0.4 ) ( x − 0.55 ) + 0.19733 ( x − 0.4 ) ( x − 0.55 ) ( x − 0.65 ) + 0.03134 ( x − 0.4 ) ( x − 0.55 ) ( x − 0.65 ) ( x − 0.8 ) N_4(x)=0.41075+1.116(x-0.4)+0.28(x-0.4)(x-0.55)\\ +0.19733(x-0.4)(x-0.55)(x-0.65)\\ +0.03134(x-0.4)(x-0.55)(x-0.65)(x-0.8) N4(x)=0.41075+1.116(x0.4)+0.28(x0.4)(x0.55)+0.19733(x0.4)(x0.55)(x0.65)+0.03134(x0.4)(x0.55)(x0.65)(x0.8)

    3. 差分及其性质

    定义3.设f(x)在等距节点 x k = x 0 + k h x_k=x_0+kh xk=x0+kh处的函数值为 f k , k = 0 , 1 , , . . . , n f_k,k=0,1,,...,n fk,k=0,1,,...,n,称:

    Δ f k = f k + 1 − f k , k = 0 , 1 , . . . , n − 1 为 f ( x ) 在 x k 处 的 一 阶 向 前 差 分 ∇ f k = f k − f k − 1 , k = 1 , 2 , . . . , n 为 f ( x ) 在 x k 处 的 一 阶 向 后 差 分 Δ 2 f k = Δ f k + 1 − Δ f k , k = 0 , 1 , . . . , n − 1 为 f ( x ) 在 x k 处 的 二 阶 向 前 差 分 ∇ 2 f k = ∇ f k − ∇ f k − 1 , k = 1 , 2 , . . . , n 为 f ( x ) 在 x k 处 的 二 阶 向 后 差 分 . . . 以 此 类 推 : Δ m f k = Δ m − 1 f k + 1 − Δ m − 1 f k − 1 为 f ( x ) 在 x k 处 的 m 阶 向 前 差 分 ∇ m f k = ∇ m − 1 f k − ∇ m − 1 f k − 1 为 f ( x ) 在 x k 处 的 m 阶 向 后 差 分 。 可 以 证 明 Δ m f k = ∇ m f k + m \Delta f_k=f_{k+1}-f_k,k=0,1,...,n-1 \\ 为f(x)在x_k处的一阶向前差分\\ \nabla f_k=f_k-f_{k-1},k=1,2,...,n\\ 为f(x)在x_k处的一阶向后差分\\ \Delta ^2 f_k=\Delta f_{k+1}-\Delta f_k,k=0,1,...,n-1 \\ 为f(x)在x_k处的二阶向前差分\\ \nabla^2f_k=\nabla f_k-\nabla f_{k-1},k=1,2,...,n\\ 为f(x)在x_k处的二阶向后差分\\ ...\\ 以此类推:\\ \Delta ^mf_k=\Delta^{m-1}f_{k+1}-\Delta^{m-1}f_{k-1}\\ 为f(x)在x_k处的m阶向前差分\\ \nabla ^mf_k=\nabla^{m-1}f_k-\nabla^{m-1}f_{k-1}\\ 为f(x)在x_k处的m阶向后差分。\\ 可以证明\Delta ^mf_k=\nabla^mf_{k+m} Δfk=fk+1fk,k=0,1,...,n1f(x)xkfk=fkfk1,k=1,2,...,nf(x)xkΔ2fk=Δfk+1Δfk,k=0,1,...,n1f(x)xk2fk=fkfk1,k=1,2,...,nf(x)xk...Δmfk=Δm1fk+1Δm1fk1f(x)xkmmfk=m1fkm1fk1f(x)xkmΔmfk=mfk+m

    在等距节点的前提下,差商和差分有如下关系:

    f [ x i , x i + 1 , . . . , x i + m ] = Δ m f i m ! ⋅ h m = ∇ m f i + m m ! ⋅ h m f[x_i,x_{i+1},...,x_{i+m}]=\frac{\Delta^mf_i}{m!\cdot h^m}=\frac{\nabla^mf_{i+m}}{m! \cdot h^m} f[xi,xi+1,...,xi+m]=m!hmΔmfi=m!hmmfi+m

    4. 牛顿向前向后插值公式

    牛顿前插公式:

    N 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 N_n(x_0+th)=f_0+t\Delta f_0+\frac{t(t-1)}{2!}\Delta^2f_0+...+\\ \frac{t(t-1)...(t-n+1)}{n!}\Delta^nf_0\\ Nn(x0+th)=f0+tΔf0+2!t(t1)Δ2f0+...+n!t(t1)...(tn+1)Δnf0

    前插公式余项: R n ( x ) = t ( t − 1 ) . . . ( t − n ) ( n + 1 ) ! h n + 1 f ( n + 1 ) ( ξ ) , ξ ∈ ( x 0 , x n ) R_n(x)=\frac{t(t-1)...(t-n)}{(n+1)!}h^{n+1}f^{(n+1)}(\xi),\xi \in(x_0,x_n) Rn(x)=(n+1)!t(t1)...(tn)hn+1f(n+1)(ξ),ξ(x0,xn)

    牛顿后插公式:

    N n ( x 0 + t h ) = f n + t ∇ f n + t ( t + 1 ) 2 ! ∇ 2 f n + . . . + t ( t + 1 ) . . . ( t + n − 1 ) n ! ∇ n f n N_n(x_0+th)=f_n+t\nabla f_n+\frac{t(t+1)}{2!}\nabla^2f_n+...+\\ \frac{t(t+1)...(t+n-1)}{n!}\nabla^nf_n\\ Nn(x0+th)=fn+tfn+2!t(t+1)2fn+...+n!t(t+1)...(t+n1)nfn

    后插公式余项: R n ( x ) = t ( t + 1 ) . . . ( t + n ) ( n + 1 ) ! h n + 1 f ( n + 1 ) ( ξ ) , ξ ∈ ( x 0 , x n ) R_n(x)=\frac{t(t+1)...(t+n)}{(n+1)!}h^{n+1}f^{(n+1)}(\xi),\xi \in(x_0,x_n) Rn(x)=(n+1)!t(t+1)...(t+n)hn+1f(n+1)(ξ),ξ(x0,xn)

    eg.给出 f ( x ) = c o s x f(x)=cosx f(x)=cosx x k = k h , k = 0 , 1 , . . . , 6 , h = 0.1 x_k=kh,k=0,1,...,6,h=0.1 xk=kh,k=0,1,...,6,h=0.1处的函数值,用四次等距节点插值公式计算f(0.048)及f(0.566)的近似值并估计误差。

    解:

    根据题意插值条件为

    x k x_k xk00.10.20.30.40.50.6 f ( x k ) f(x_k) f(xk)1.000000.995000.980070.955340.921060.877580.82534
    1. 构造差分表
    一阶二阶三阶四阶五阶-0.005-0.00993-0.014930.00013-0.00980.00012-0.024730.00025-0.00002-0.009550.00010-0.034280.00035-0.00001-0.009200.00009-0.043480.00044-0.00876-0.05224

    差分表中斜体数字是 x 0 x_0 x0处的各阶向前差分,黑体是 X 6 X_6 X6处的各阶向后差分。

    2.应用牛顿前插公式计算 f ( 0.048 ) f(0.048) f(0.048)的近似值

    取 x = 0.048 , x 0 = 0 , h = 0.1 , 则 t = x − x 0 h = 0.48 , 用 差 分 表 中 的 各 阶 向 前 差 分 , 得 : f ( 0.048 ) = c o s 0.048 ≈ N 4 ( 0.048 ) = f 0 + t Δ f 0 + t ( t − 1 ) 2 ! Δ 2 f 0 + . . . + t ( t − 1 ) . . . ( t − n + 1 ) n ! Δ n f 0 = 1.000 + 0.48 × ( − 0.00500 ) + ( 0.48 ) ( 0.48 − 1 ) 2 ! ( − 0.00993 ) + ( 0.48 ) ( 0.48 − 1 ) ( 0.48 − 2 ) 3 ! ( 0.00013 ) + ( 0.48 ) ( 0.48 − 1 ) ( 0.48 − 2 ) ( 0.48 − 3 ) 4 ! ( 0.00012 ) = 0.99885 取x=0.048,x_0=0,h=0.1,则t=\frac{x-x_0}{h}=0.48,\\ 用差分表中的各阶向前差分,得:\\ f(0.048)=cos0.048\approx N_4(0.048)\\ =f_0+t\Delta f_0+\frac{t(t-1)}{2!}\Delta^2f_0+...+\\ \frac{t(t-1)...(t-n+1)}{n!}\Delta^nf_0\\ =1.000+0.48 \times (-0.00500)+\frac{(0.48)(0.48-1)}{2!}(-0.00993)\\ +\frac{(0.48)(0.48-1)(0.48-2)}{3!}(0.00013)\\ +\frac{(0.48)(0.48-1)(0.48-2)(0.48-3)}{4!}(0.00012)=0.99885 x=0.048,x0=0,h=0.1,t=hxx0=0.48,f(0.048)=cos0.048N4(0.048)=f0+tΔf0+2!t(t1)Δ2f0+...+n!t(t1)...(tn+1)Δnf0=1.000+0.48×(0.00500)+2!(0.48)(0.481)(0.00993)+3!(0.48)(0.481)(0.482)(0.00013)+4!(0.48)(0.481)(0.482)(0.483)(0.00012)=0.99885

    根据牛顿前插余项公式的误差估计:

    ∣ R 4 ( x ) ∣ ≤ M 5 5 ! ∣ t ( t − 1 ) ( t − 2 ) ( t − 3 ) ( t − 4 ) ∣ h 5 , 其 中 x = 0.048 , h = 0.1 , t = 0.48 , M 5 是 c o s x 的 五 次 导 函 数 在 区 间 [ 0 , 0.6 ] 上 绝 对 值 的 最 大 值 , 有 ∣ M 5 ∣ ≤ ∣ s i n 0.6 ∣ ≤ 0.565 可 知 ∣ R 4 ( 0.048 ) ∣ ≤ 1.5845 × 1 0 − 7 [ 0.5 × 1 0 − 6 |R_4(x)| \leq \frac{M_5}{5!}|t(t-1)(t-2)(t-3)(t-4)|h^5,\\ 其中x=0.048,h=0.1,t=0.48,\\ M_5是cosx的五次导函数在区间[0,0.6]上绝对值的最大值,有|M_5|\leq|sin0.6| \leq0.565\\ 可知|R_4(0.048)|\leq1.5845 \times 10^{-7} [0.5 \times 10^{-6} R4(x)5!M5t(t1)(t2)(t3)(t4)h5,x=0.048,h=0.1,t=0.48,M5cosx[0,0.6],M5sin0.60.565R4(0.048)1.5845×107[0.5×106

    3. 应用牛顿后插公式计算f(0.566)的近似值

    x = 0.566 , x 6 = 0.6 , h = 0.1 , 则 t = x − x 6 h = − 0.34 用 差 分 表 中 下 半 部 的 各 阶 向 后 差 分 得 : f ( 0.566 ) = c o s 0.0566 ≈ N 4 ( 0.566 ) = f n + t ∇ f n + t ( t + 1 ) 2 ! ∇ 2 f n + . . . + t ( t + 1 ) . . . ( t + n − 1 ) n ! ∇ n f n = 0.82534 + ( − 0.34 ) × ( − 0.05224 ) + − 0.34 ( − 0.34 + 1 ) 2 ! × ( − 0.00867 ) + − 0.34 ( − 0.34 + 1 ) ( − 0.34 + 2 ) 3 ! × ( − 0.00044 ) + − 0.34 ( − 0.34 + 1 ) ( − 0.34 + 2 ) ( − 0.34 + 3 ) 4 ! × ( 0.00009 ) = 0.84405 于 是 f ( 0.566 ) = c o s 0.566 ≈ 0.84405 x=0.566,x_6=0.6,h=0.1,则t=\frac{x-x_6}{h}=-0.34\\ 用差分表中下半部的各阶向后差分得: f(0.566)=cos0.0566\approx N_4(0.566)\\ =f_n+t\nabla f_n+\frac{t(t+1)}{2!}\nabla^2f_n+...+\\ \frac{t(t+1)...(t+n-1)}{n!}\nabla^nf_n\\ =0.82534+(-0.34)\times(-0.05224)\\ +\frac{-0.34(-0.34+1)}{2!}\times(-0.00867)\\ +\frac{-0.34(-0.34+1)(-0.34+2)}{3!}\times(-0.00044)\\ +\frac{-0.34(-0.34+1)(-0.34+2)(-0.34+3)}{4!}\times(0.00009)\\ =0.84405\\ 于是f(0.566)=cos0.566\approx0.84405 x=0.566,x6=0.6,h=0.1,t=hxx6=0.34f(0.566)=cos0.0566N4(0.566)=fn+tfn+2!t(t+1)2fn+...+n!t(t+1)...(t+n1)nfn=0.82534+(0.34)×(0.05224)+2!0.34(0.34+1)×(0.00867)+3!0.34(0.34+1)(0.34+2)×(0.00044)+4!0.34(0.34+1)(0.34+2)(0.34+3)×(0.00009)=0.84405f(0.566)=cos0.5660.84405

    根据牛顿后插公式余项得:

    ∣ R 5 ( x ) ∣ ≤ M 5 5 ! ∣ t ( t + 1 ) ( t + 2 ) ( t + 3 ) ( t + 4 ) ∣ h 5 其 中 x = 0.566 , x 6 = 0.6 , h = 0.1 t = x − x 6 h = − 0.34 ∣ M 5 ∣ ≤ ∣ s i n 0.6 ∣ ≤ 0.565 得 ∣ R 5 ( 0.566 ) ∣ ≤ 1.7064 × 1 0 − 7 [ 0.5 × 1 0 − 6 ] |R_5(x)|\leq\frac{M_5}{5!}|t(t+1)(t+2)(t+3)(t+4)|h^5\\ 其中x=0.566,x_6=0.6,h=0.1\\ t=\frac{x-x_6}{h}=-0.34\\ |M_5|\leq|sin0.6|\leq0.565\\ 得|R_5(0.566)|\leq1.7064 \times 10^{-7} [0.5 \times 10^{-6}] R5(x)5!M5t(t+1)(t+2)(t+3)(t+4)h5x=0.566,x6=0.6,h=0.1t=hxx6=0.34M5sin0.60.565R5(0.566)1.7064×107[0.5×106]

    5. 牛顿插值多项式小结

    优点:计算简单

    缺点:和拉格朗日插值方法相同,插值曲线在节点处有尖点,不光滑,节点处不可导


    {持续更新} 欢迎扫描二维码关注微信公众号 深度学习与数学   [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]

    最新回复(0)