选择预条件子时是否要考虑预条件矩阵的条件数?

计算科学 条件数
2021-12-28 02:52:45

当我们求解一个大型稀疏线性系统Ax=b时,使用预处理的 Krylov 子空间方法,例如 gmres,我们是否需要减少系数矩阵的条件数?在我看来,我们只需要考虑如何对预处理矩阵M^{-1}A的特征值分布进行聚类,只要对谱进行聚类,我们就可以获得迭代的快速收敛,而不管条件的大小预处理矩阵数量。所以,我认为我们不需要考虑条件数。但是一位老师说我们必须减少预处理矩阵M1AM1A,用他的话来说,必须考虑条件数是怎么变成的?但我仍然认为我们不需要考虑条件数。例如,如果一个对称的正矩阵只有两个不同的特征值,无论这个矩阵大小,PCG 都将分两步收敛。更不用说条件编号了。AA

我对还是老师对?谢谢

1个回答

的条件数主要用于两件事:A

  1. 了解求解Ax=b
  2. 作为迭代的难度的粗略概念Ax=b

您已经指出,对于 (2),条件数并不能真正说明全部情况。如果矩阵是对称且正定的,那么大多数迭代求解器将具有某种仅基于条件数可预先证明的收敛速度,但这通常不是一个非常有用的估计。

您还指出,特征值聚类似乎可以完全确定许多迭代求解器的收敛行为。这在很大程度上是正确的,但也有一些警告:大多数情况下,矩阵必须是正常的,才能使特征值聚类参数起作用。因此,即使是这个更一般的标准也可能会产生误导。

因此,在实践中,最好从整体上考虑迭代求解器:查看条件、频谱、正态性,并尝试确定一个评估成本低但可以以有益的方式控制这三个属性的预处理器。

要对此进行更数学的了解,请考虑查看此相关问题的答案