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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kevin_zhao_zl/article/details/90488160

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

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

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

定义1.设 f ( x ) f(x) 在互异节点 x i x_i 处的函数值为 f i , i = 0 , 1 , . . . , n f_i,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 ( x ) f(x) 关于节点 x i , x j x_i,x_j 的一阶差商, 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 ( x ) f(x) 关于 x i , x j , x k x_i,x_j,x_k 的二阶差商,以此类推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 k ( x ) f^{k}(x) 在包含节点 x 0 , x 1 , . . . , x k x_0,x_1,...,x_k 的区间存在时,在 x 0 , x 1 , . . . , x k x_0,x_1,...,x_k 之间必存在一点 ξ \xi 使得:

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

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

i 0 1 2 3
x i x_i -2 -1 1 2
f ( x i ) f(x_i) 5 3 17 21

如下:

x i x_i f ( x i ) f(x_i) 一阶差商 二阶差商 三阶差商
-2 5
-1 3 -2
1 17 7 3
2 21 4 -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)

f ( x ) f(x) 关于节点 x i x_i 的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)

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

x i x_i f ( x k ) f(x_k) 一阶均差 二阶均差 三阶均差 四阶均差
0.40 0.41075
0.55 0.57815 1.11600
0.65 0.69675 1.18600 0.28000
0.80 0.88811 1.27573 0.35893 0.19733
0.90 1.02652 1.38410 0.43348 0.21300 0.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)

3. 差分及其性质

定义3.设f(x)在等距节点 x k = x 0 + k h x_k=x_0+kh 处的函数值为 f k , k = 0 , 1 , , . . . , n f_k,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}

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

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}

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\\

前插公式余项 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)

牛顿后插公式

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\\

后插公式余项: 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)

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

解:

根据题意插值条件为

x k x_k 0 0.1 0.2 0.3 0.4 0.5 0.6
f ( x k ) f(x_k) 1.00000 0.99500 0.98007 0.95534 0.92106 0.87758 0.82534
1. 构造差分表
一阶 二阶 三阶 四阶 五阶
-0.005
-0.00993
-0.01493 0.00013
-0.0098 0.00012
-0.02473 0.00025 -0.00002
-0.00955 0.00010
-0.03428 0.00035 -0.00001
-0.00920 0.00009
-0.04348 0.00044
-0.00876
-0.05224

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

2.应用牛顿前插公式计算 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

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

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}

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

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

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}]

5. 牛顿插值多项式小结

  • 优点:计算简单

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


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

猜你喜欢

转载自blog.csdn.net/kevin_zhao_zl/article/details/90488160
今日推荐