具有周期性狄利克雷泊松矩阵的共轭梯度法中的误差放大

计算科学 迭代法 收敛 泊松 共轭梯度
2021-12-04 06:36:48

我的问题是周期性泊松矩阵的残差的 L2 范数P最初是减少的,但在一定次数的迭代后开始爆炸。矩阵越大,爆炸发生得越早。

另一方面,泊松矩阵H具有齐次狄利克雷边界条件的多次迭代以指数方式收敛,没有任何明显的振荡。

作为参考,我使用的是 Wikipedia 提供的 CG算法

我遇到的唯一收敛标准似乎是系统矩阵的正定性。什么可能导致矩阵爆炸P?

1个回答

当您的矩阵条件不佳时,通常会发生这种行为。原因:

  • 您的迭代求解适用于不同的矩阵(不太可能有错误/错误的内存访问等)
  • 当您增加矩阵大小时问题会变得更糟(条件数将与矩阵大小成正比)

建议的行动:

  • 检查两个矩阵的条件编号如果第一个明显更差(它越大,您在迭代求解过程中可能遇到的问题越多),您可能必须选择更好的预处理器,甚至继续迭代求解。
  • 首先检查您正在使用的预处理。至少必须使用对角线 (Jacobi) 预处理器
  • 检查是否可以使用 LU 分解直接解决较小的问题(以确保矩阵汇编和其他代码流水线工作正常)。