数值方法误差收敛阶计算

 

收敛精度 (阶) 介绍

当考虑采用数值方法计算一个精确解$u$时,数值解$u_h$与精确解近似程度一般和参数网格步长$\Delta x$或者时间步长$\Delta t$相关,这个近似程度可以表示为 \(||\boldsymbol u_h - \boldsymbol u|| \leq C_1 (\Delta x)^p + C_2(\Delta t)^q\) 其中$C_1、C_2$是与$\Delta x$和$\Delta t$无关的常数,在上式中的幂次$p、q$为数值格式空间和时间的收敛精度(阶数)。误差$| u_h - u|$也可以用$h$表示为 \(||u_h - u ||= C h^p + O(h^{p+1})\) 一般而言,若数值格式具有$p$阶空间与$q$阶时间精度,那么残差项应该满足 \(R(\Delta x,\Delta t) = E(\Delta x^p,\Delta t^q)+O(\Delta x^{p+1},\Delta t^{q+1})\) 其中$E$为线性方程,而$p$、$q$中最小值决定了格式的收敛阶大小。

收敛阶计算

当计算空间收敛阶的时候,固定的时间步长要足够小,否则会因为时间步长带来的误差而影响空间收敛阶的测量。

当选取不同网格尺寸h的变化,如 $(\Delta x,\Delta t)$ ,$(\frac{1}{2}\Delta x,\Delta t)$,$(\frac{1}{4}\Delta x,\Delta t)$的步长来进行计算,得到$R(\Delta x)$,$R(\frac{1}{2}\Delta x)$,$R(\frac{1}{4}\Delta x)$,由于

\[R(\Delta x) = E(\Delta x^p)+O(\Delta x^{p+1}) \approx C \Delta(x^p)\]

那么

\(\frac{R(\Delta x)}{R(\frac{1}{2} \Delta x)} = \frac{C \Delta x^p}{C (\frac{1}{2}\Delta x)^p}\) 因此收敛精度$p$也可以采用下式进行估计 \(p = \log_2(\frac{R(\Delta x)}{R(\frac{1}{2} \Delta x)})\)

例子

我们以一次lagrange有限元空间的热传导方程为例子来测试时间和空间的误差阶

选取时间剖分数为200,进行空间收敛阶测试

空间剖分数 L2误差 收敛阶
16 0.00975163175090327 -
32 0.00242759560095082 2.008
64 0.00053945488047602 2.169
128 0.00008306005167549 2.699

选取空间剖分数为256,进行时间收敛阶测试 | 时间剖分数 | L2误差 | 收敛阶 | | :——–: | :———————: | :—-: | | 25 | 0.00088942362309909 | - | | 50 | 0.0004261797959813566 | 1.061 | | 100 | 0.00019620596616854303 | 1.119 | | 200 | 0.00008271012342594058 | 1.246 | | 400 | 0.000030374577856162667 | 1.445 |