估计收敛速度,有限差分格式

时间:2011-04-04 10:41:11

标签: math

我正在尝试估计序列的收敛速度。

背景:

u ^ n + 1 = G u_n,其中G是迭代矩阵(来自热方程)。

修复dx = 0.1,并设置dt = dx * dx / 2.0以满足稳定性约束 然后,我做了多次迭代,直到时间T = 0.1,并使用max-norm计算误差(解析解是已知的)。

这给了我一系列全局误差,从理论上应该是O(dt)+ O(dx ^ 2)的形式。

现在,我想确认我们有O(dt)。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

使用dt / 2重新启动相同的代码,并看到错误减半。

答案 1 :(得分:0)

我认为Alexandre C.的建议可能需要一点改进(没有双关语意),因为全局误差估计取决于Δt和Δx。

因此,如果Δx太粗糙,通过减半精炼Δt可能不会产生预期的减半误差。

然后,更好的测试可能是通过减半来同时减小Δt和减半。然后全局误差估计使我们预期误差会减少四分之一。

通常情况下,将全局误差和“比例”绘制为对数 - 对数图以估计收敛顺序是很常见的。

有了更多的资源(时间和计算机运行),独立地改变时间和空间离散化将允许双参数拟合(相同类型的对数 - 对数模型)。

答案 2 :(得分:0)

我很擅长物理,但这样的简单问题,即使我能做到。

那么,你有什么问题?

计算收敛率:

  1. 如果您将系列定义为enter image description hereSum[a[n], {n, 1, Infinity}]),那么您需要找到位置,系列会聚enter image description hereL=Limit[a[n], n -> Infinity])。
  2. 现在您可以找到汇合率enter image description hereμ = Limit[(a[n + 1] - L)/(a[n] - L), n -> Infinity]
  3. 用分析解决方案找出组合的不确定性

    使用等式: enter image description hereUc = Sqrt[(D[a, t] Δt)^2 + (D[a, x] Δx)^2]