实际全局误差与理论全局误差:如何将理论与实践相结合

计算科学 有限差分 误差估计 数字 微分方程
2021-12-18 15:53:19

我已经实现了 Adams Bashforth 4 方法来解决 ODE 的初始值问题,并且我正在根据测试方程对其进行测试:

y=λy其中具有精确解:我已经设置了y(0)=1y(t)=eλtλ=1

我得到了不错的结果和不错的收敛速度,因为对数图是线性的,斜率为 4(AD4 为 4 阶,因此误差为)。这是我在区间O(h4)t[0,3] 在此处输入图像描述

这与理论一致吗?此外,您将在此图中的何处绘制线?O(h4)我知道它需要与 AD4 线平行,但在哪里?一般来说,我真的不知道全局错误和O(h4)

这是我的数据

h        = ( 0.1, 0.05, 0.01, 0.005)
ad4error = (3.477e-03, 2.493e-04, 4.445e-07, 2.816e-08)  
1个回答

我要把我的评论变成答案。

错误顺序告诉您离散解对应于精确解的顺序(不包括)。

周围的泰勒展开的 0-3 阶即在表达式)。O(Δt4)Δtf(t+Δt)=f(t)+

坦率地说(并且在数学上不精确),如果将时间步长的大小减半,则偏差将小当然,这假设误差是在同一最终时间计算的。或者,如果你想有效地使用对数图,你可以说通过将步长减小一个数量级 \与解析解的偏差将减少 4 个数量级,即 10^{-6} 而不是 ^ } 。Δt24Δt=101Δt=102102106

为了可视化错误的增长,可以绘制不同阶数的曲线(等),并尝试将结果与这些曲线进行比较。这在对数对数图中非常复杂,并导致相当混乱的图。更好的方法是定义一个函数,该函数将绘制一个斜率三角形,该三角形具有适当标记的边,靠近您要显示其行为的曲线。Δt2,Δt3

在我的论文中,我在分析 有限元的实现时使用了它,如下图所示。P2,P3

使用不同 FE 阶的矩形泊松方程的有限元误差。

请注意,如果我要为每个增长顺序添加整条曲线,这个图会非常混乱。诚然,斜率三角形可以放置得更好,但它们确实显示了增长顺序(网格宽度的次方对应于误差轴上) 。2n10