随着网格的细化计算精度顺序?

计算科学 数值分析 误差估计 准确性
2021-12-11 00:46:54

我已经实现了一个 FVM 代码,现在我需要在网格得到细化时绘制该方法的准确性。有一个非常细的网格,我的想法是比较 L1 范数中粗网格和细网格之间的误差是多少。我的问题是,具有更精细网格的解向量比具有粗网格的解具有更多条目,因此,如何比较两者?

3个回答

如果你解释L1norm 作为函数范数(即积分),则增加解值的数量将被网格宽度的减小所抵消。结果应该是规范中的可比值。

也就是说,如果您的解决方案是f, 取值f(xi)为了i=1,,N, 然后

f1=0L|f(x)|dxhi=1N|f(xi)|,

假设:

  • 您的网格是均匀的(否则,将放在求和中并将其替换为,假设离散点位于单元中心)hxi+1/2xi1/2
  • PDE 的域是(不失一般性)。[0,L]

如果您认为您的网格尺寸处于渐近状态,您可以尝试 Richardson 误差估计。

本质上,这个想法是您将错误建模为对于某些未知并假设您超出该顺序的其他项可以忽略不计。然后,对于三种不同的网格大小,您有三个近似值O(hp)p

fhf+chp
f2hf+c(2h)p
f4hf+c(4h)p

其中是精细、中等和粗糙网格上的解。使用一些代数,你会得到和类似的另一个差异,所以你可以解决fhf2h f4hfhf2hc(hp(2h)p)pc

要获取不同大小的网格函数之间的差异,只需使用限制 -上采样,上采样,所以每隔一段时间进行评估。选择您想要估计误差的任何规范。fh0,1,2,3,4,5,6f2h0,2,4,6

在较粗的网格上进行插值,例如,通过足够平滑的张量积样条。然后,在更精细的网格上评估插值。现在你有两个相同长度的解向量:一个是从低分辨率模型中采样的,另一个是在更高分辨率上求解的实际数据。找出它们在给定规范中的差异。