#多重网格法加速高斯赛德尔的练习
基于numpy
改自 https://zhuanlan.zhihu.com/p/337970166
多重网格(Multigrid)是一种加速迭代法的方法。它可以和任何迭代法结合使用。其基本原理是通过在不同粗细程度的网格上来回迭代,以消除残差中的长波分量和短波分量。
GS.py中运行的是Gauss-Seidel迭代的结果
下图展示的是不同迭代次数的残差。x坐标为原PDE中的自变量x,y坐标为残差。可见长波残差并未被消除。
下图展示的是收敛曲线。x坐标为迭代次数,y坐标为残差。需要2579次迭代收敛至残差小于1e-3
MG.py中运行的是Multigrid加速GS之后的结果。每次V-cycle需要10次GS。