我正在开发一个求解器,用于求解关于时间和空间导数的一阶线性双曲方程。求解器的形式精度必须为 5,因为我使用 5 阶精确 Runge--Kutta 方法和 5 阶有限差分 WENO 用于 Hamilton--Jacobi 方程。
为了验证我的求解器,我进行了收敛性研究。我必须解决:在一种情况下,我有一个指数增长的解决方案,而在另一种情况下,我有一个指数衰减的解决方案。我不知道一个精确的解决方案,所以我使用最精细网格上的解决方案作为精确的解决方案来测量离散化误差。
测量误差后-norm,对于指数增长的解决方案,我得到以下结果:
Resolution L2-error L2-order
199 3.36e-05 nan
399 7.65e-07 5.45
799 2.36e-08 5.01
1599 5.05e-09 2.22
3199 3.01e-09 0.74
6399 2.15e-09 0.48
51199 nan nan
我在“分辨率”列中有“奇怪”的数字,因为空间步长计算为
上表中的数据表明,最初我的准确度为 5 阶,尽管我没有得到值 5.00 的渐近收敛。然后,解决方案的顺序显着下降,我可以用浮点错误来解释。
然而,真正的问题是,当我对指数衰减解的情况进行收敛性研究时,我根本没有得到 5 阶精度:
Resolution L2-error L2-order
199 1.73E-08 nan
399 1.14E-11 10.56
799 4.92E-12 1.22
1599 2.18E-12 1.17
3199 1.00E-12 1.12
6399 5.46E-13 0.87
51199 nan nan
最初,我得到了荒谬的 10 阶准确度,它立即降级为 1 阶。我应该注意到,在这种情况下,解决方案在 1e-5 到 1e-12 的范围内变化(它会衰减)。解的小幅度是否可以成为这种精确度阶的奇怪行为的原因?
所以,我有以下问题:
自收敛测试可靠吗?我是否通过逐点减去两个解来正确测量离散化误差?
对于具有两个不同问题的同一个求解器,收敛行为截然不同的原因是什么?