数值分析(3)

您所在的位置:网站首页 多项式近似算法公式推导方法是什么 数值分析(3)

数值分析(3)

2024-07-16 22:31| 来源: 网络整理| 查看: 265

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

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​]=xi​−xj​fi​−fj​​为 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​]=xk​−xj​f[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​,...,xk−1​,xk​]=xk−1​−xk​f[x0​,x1​,...,xk−1​]−f[x0​,x1​,...,xk−2​,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​(x−x0​)+a2​(x−x0​)(xx​1)+...+an​(x−x0​)(x−x1​)...(x−xn−1​)=f0​+k=1∑n​f[x0​,x1​,...,xk​]ωk​(x)其中ωk​(x)=j=0∏k−1​(x−xj​)

为 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(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 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+1​−fk​,k=0,1,...,n−1为f(x)在xk​处的一阶向前差分∇fk​=fk​−fk−1​,k=1,2,...,n为f(x)在xk​处的一阶向后差分Δ2fk​=Δfk+1​−Δfk​,k=0,1,...,n−1为f(x)在xk​处的二阶向前差分∇2fk​=∇fk​−∇fk−1​,k=1,2,...,n为f(x)在xk​处的二阶向后差分...以此类推:Δmfk​=Δm−1fk+1​−Δm−1fk−1​为f(x)在xk​处的m阶向前差分∇mfk​=∇m−1fk​−∇m−1fk−1​为f(x)在xk​处的m阶向后差分。可以证明Δ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!⋅hm∇mfi+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(t−1)​Δ2f0​+...+n!t(t−1)...(t−n+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(t−1)...(t−n)​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​+t∇fn​+2!t(t+1)​∇2fn​+...+n!t(t+1)...(t+n−1)​∇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 xk​00.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=hx−x0​​=0.48,用差分表中的各阶向前差分,得:f(0.048)=cos0.048≈N4​(0.048)=f0​+tΔf0​+2!t(t−1)​Δ2f0​+...+n!t(t−1)...(t−n+1)​Δnf0​=1.000+0.48×(−0.00500)+2!(0.48)(0.48−1)​(−0.00993)+3!(0.48)(0.48−1)(0.48−2)​(0.00013)+4!(0.48)(0.48−1)(0.48−2)(0.48−3)​(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!M5​​∣t(t−1)(t−2)(t−3)(t−4)∣h5,其中x=0.048,h=0.1,t=0.48,M5​是cosx的五次导函数在区间[0,0.6]上绝对值的最大值,有∣M5​∣≤∣sin0.6∣≤0.565可知∣R4​(0.048)∣≤1.5845×10−7[0.5×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 x=0.566,x6​=0.6,h=0.1,则t=hx−x6​​=−0.34用差分表中下半部的各阶向后差分得:f(0.566)=cos0.0566≈N4​(0.566)=fn​+t∇fn​+2!t(t+1)​∇2fn​+...+n!t(t+1)...(t+n−1)​∇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.84405于是f(0.566)=cos0.566≈0.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!M5​​∣t(t+1)(t+2)(t+3)(t+4)∣h5其中x=0.566,x6​=0.6,h=0.1t=hx−x6​​=−0.34∣M5​∣≤∣sin0.6∣≤0.565得∣R5​(0.566)∣≤1.7064×10−7[0.5×10−6]

5. 牛顿插值多项式小结

优点:计算简单

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3