如何量化基于 FFT 的泊松求解器的误差?

计算科学 离散化 傅立叶分析 误差估计
2021-12-14 13:13:23

我有一个 FFT 代码,可以解决求解泊松方程的稳态欧拉方程的特定情况,什么是量化误差的好方法?我在做什么好吗?

由于我没有与我所做的比较的分析解决方案,所以我在一个非常精细的网格上计算了解决方案,然后计算了这样的错误:

xf成为很好的解决方案和xi粗网格的解决方案,每个网格的误差i是:

errori=xfxixf

然后,我将误差绘制在 loglog 图中,作为网格点数 N 的函数。

误差与网格点总数

斜率比是 1 比 1,这是否意味着该方案是一阶准确的?

我也有res=LHSRSH其中术语代表等式的左侧减去右侧并执行了类似的绘图,但我不确定什么是解释它的最佳方法。任何帮助或输入将不胜感激。

残差范数与网格点总数

1个回答

这是我通常遵循的执行此类错误图的一般程序:

  1. 找到这样以使解收敛。N

  2. 绘制错误(例如就像你做的那样)。您可以使用对数图(多项式收敛将是一条线)或对数线性图(指数收敛将是一条线)。xfxixf

  3. (可选)绘制预期收敛速度 --- 在您的情况下绘制函数,其中是您调整的常数,以便该函数与显示的最小的收敛图一致。如果两条线在你的图表上一致,那么你就有一个一阶收敛。一旦你绘制它,它就会从图中显而易见。使用进行二次收敛等等。cN1cNcN2

请注意误差公式:有时您可以绘制一些值(例如薛定谔方程中的能量时,它会收敛到精确值在这种情况下,您可以只绘制 ,您可以从步骤 1中确定ENEEconvEconv