偏微分方程数值解的数学检验方法?

计算科学 pde 数值分析 数值建模
2021-11-29 16:08:45

考虑到解析解不可用且数值解收敛,有哪些方法可用于测试数值解的准确性?

2个回答

您还应该阅读制造解决方案方法 (PDF),它将向您展示如何为您的问题生成分析解决方案。

当没有用于比较的解析解时,无法完全验证数值解,但仍有几种方法可以让您对“正确性”充满信心。

在您的问题中,“数值解收敛”的含义并不完全清楚。从数字代码在有限时间内产生有限答案的意义上说,“收敛”当然是正确性所必需的。更强烈的是,通常会进行网格细化研究,以表明解会随着离散化变得更精细而收敛。

如果您的 PDE 系统是,那么误差是,其中是网格大小的离散解,而是精确解。您可能希望收敛是单调的(即细化网格不会增加误差),并且可能还显示一致的收敛顺序(例如)。F(x)=0Δx=xhxxhhx|Δx|=O[hp]

在您的情况下,您可以为“确切”解决方案选择一些代理。例如,这可能是一个非常精细的网格上的解决方案,或者来自另一个代码的解决方案,例如来自文献的解决方案。(对于验证,而不是验证,您将使用 PDE 正在建模的自然/实验/工程系统的观察结果。)然后您可以在网格细化收敛分析中使用此代理。

除了解决方案错误,您还可以查看解决方案残差,即. 在这种情况下,您应该对残差进行归一化,这样它就不会随着网格细化而固有地增长。例如,残差可以在固定域大小上进行平均或积分(概念上,,其中)。|Fh(xh)|ΩFdΩ=F¯|Ω|h=|Ω|/N

我也建议进行代码验证。也就是说,使用相同的代码解决一些确实有解析解的问题,并验证这些问题是否正确。(在这里,您可以制造通过设计具有分析解决方案的测试用例;请参阅 Bill Barth 的回答。)