Answers:
选择迭代求解器时,重要的是运算符的范围,请参阅本文。但是,有很多负面结果,请参见本文,其中没有迭代求解器可以解决所有问题,并且本文证明了迭代求解器可以针对任何频谱获得GMRES的任何收敛曲线。因此,除了少数几个孤立的情况外,似乎不可能预测迭代求解器的行为。因此,最好的选择是使用类似PETSc的系统尝试所有迭代求解器,该系统也具有直接求解器。
直接方法和迭代方法之间的选择取决于当前的目标和问题。
对于直接方法,我们可以注意:
对于迭代方法,我们可以注意:
何时使用直接或迭代方法的准则?
我完全同意已经给出的答案。我想补充一点,所有迭代方法都需要某种初始猜测。初始猜测的质量通常会影响您选择的方法的收敛速度。诸如Jacobi,Gauss Seidel和“连续过度松弛”之类的方法都可以迭代地“平滑”出每个步骤中尽可能多的错误(有关详细信息,请参见本文))。前几步可以相当快地减少高频误差,但是低频误差需要更多的迭代才能消除。这就是使这些方法的收敛速度变慢的原因。在这种情况下,我们可以先解决低频误差(例如,在较粗的网格上解决相同的问题),然后解决更高的频率误差(例如,在较细的网格上),以加快收敛速度。如果通过分而治之递归地应用此概念,我们将获得所谓的“多重网格”方法。即使线性系统不是对称的,对于任何非奇异稀疏矩阵系统(例如代数多网格方法),也可以使用多网格方法的替代实现,这可以加快求解器的收敛速度。但是,它们在并行系统上的可伸缩性是许多研究的主题。。
您的问题中缺少一条重要的信息:矩阵是从哪里来的。您试图解决的问题的结构很有可能提出解决方法。
如果您的矩阵源自具有光滑系数的偏微分方程,那么几何多重网格方法将很难克服,尤其是在三个维度上。如果您的问题不太规律,则代数多重网格是个好方法。两者通常都与Krylov空间方法结合。其他有效的求解器可以从快速多极方法或快速傅立叶变换中得出。