介绍
在 二维Poisson方程五点差分格式及简单求解方法Python实现 一文中给出了二维齐次 Dirichlet 型边界条件的 Poisson 方程的标准五点差分格式离散, 得到了离散系统:
A X = b AX = b AX=b
其中 A A A 为离散后的微分矩阵:
对于一维情形:
A = 1 h 2 A 1 = 1 h 2 ( − 2 1 1 − 2 1 ⋱ ⋱ ⋱ 1 − 2 1 1 − 2 ) A = \frac{1}{h^{2}}A_{1} = \frac{1}{h^{2}} \begin{pmatrix} -2 & 1 & & & \\ 1 & -2 & 1 & & \\ & \ddots & \ddots & \ddots & \\ & & 1 & -2 & 1 \\ & & & 1 & -2 \end{pmatrix} A=h21A1=h21⎝⎜⎜⎜⎜⎛−211−2⋱1⋱1⋱−211−2⎠⎟⎟⎟⎟⎞
对于二维情形:
A = A 2 = 1 h x 2 I N ⊗ A 1 + 1 h y 2 A 1 ⊗ I N A = A_{2} = \frac{1}{h_{x}^{2}}I_{N} \otimes A_{1} + \frac{1}{h_{y}^{2}}A_{1} \otimes I_{N} A=A2=hx21IN⊗A1+hy21A1⊗IN
在上文中采取最简单粗暴的方式直接生成 A A A, 并调用库函数直接对线性系统进行求解, 实际上这样的方法不适用于大规模问题,并且效率较低,本文介绍 Poisson 系统的一些常用的解法,这些解法适用于规模较大的一些问题.
简单迭代法
考虑线性系统:
A x = b Ax = b Ax=b
将上系统改写为如下等价形式
x = ( I − C A ) x + C b x = (I - CA) x + Cb x=(I−CA)x+