据我了解,解决线性方程组的方法有两大类:
- 固定方法(Jacobi,Gauss-Seidel,SOR,Multigrid)
- Krylov子空间方法(共轭梯度,GMRES等)
我了解到,大多数固定方法都是通过迭代地放松(平滑)错误的傅立叶模式而起作用的。据我了解,共轭梯度法(Krylov子空间法)通过“逐步”遍历来自应用于第个残差的矩阵的幂的最佳搜索方向集而工作。这个原理对所有Krylov子空间方法都通用吗?如果不是,那么,一般来说,我们如何表征Krylov子空间方法收敛的原理?
据我了解,解决线性方程组的方法有两大类:
我了解到,大多数固定方法都是通过迭代地放松(平滑)错误的傅立叶模式而起作用的。据我了解,共轭梯度法(Krylov子空间法)通过“逐步”遍历来自应用于第个残差的矩阵的幂的最佳搜索方向集而工作。这个原理对所有Krylov子空间方法都通用吗?如果不是,那么,一般来说,我们如何表征Krylov子空间方法收敛的原理?
Answers:
通常,所有Krylov方法本质上都是在矩阵矩阵光谱上求较小的多项式。特别是,可以将Krylov方法的第个残差(初始猜测为零)写成
其中是阶数单项多项式。
如果是对角化,用,我们有
如果是正常的(例如对称或or),我们知道 1。GMRES通过Arnoldi迭代构造这样的多项式,而CG使用不同的内积构造多项式(有关详细信息,请参见此答案))。同样,BiCG通过非对称Lanczos过程构造其多项式,而Chebyshev迭代使用频谱上的先验信息(通常对对称定矩阵的最大和最小特征值进行估计)。
作为一个很酷的例子(由Trefethen + Bau推动),考虑一个频谱如下的矩阵:
在MATLAB中,我使用以下代码构造了它:
A = rand(200,200);
[Q R] = qr(A);
A = (1/2)*Q + eye(200,200);
如果考虑使用GMRES,它构造的多项式实际上使所有单项多项式上的残差最小化,那么通过查看候选多项式,我们可以轻松地预测残差历史
在我们的情况下
对于在的光谱。一
现在,如果我们在随机RHS上运行GMRES并将残差历史记录与此多项式进行比较,则它们应该非常相似(候选多项式值小于GMRES残差,因为):
作为Reid.Atcheson回答的附录,我想澄清一些有关规范的问题。在第次迭代中,GMRES找到使残差的2范数最小的多项式P n
假设为SPD,则A诱导范数,A − 1也是如此。然后
我们使用错误的地方
因此,误差的范数是相当于甲- 1残差的范数。共轭梯度使误差的A范数最小化,这使其在解析低能模式时相对更准确。GMRES使残差的2范数最小化,就像误差的A T A范数一样,因此在低能模式解析度较低的意义上更弱。请注意,残差的A范数本质上毫无价值,因为在低能模式下,它甚至更弱。
最后,关于不同的Krylov方法和GMRES收敛的精妙之处,存在有趣的文献,特别是对于非正规算子。
Nachtigal,Reddy和Trefethen(1992)非对称矩阵迭代的速度有多快? (作者的pdf)给出了一个矩阵示例,其中一种方法在很大程度上击败了所有其他方法(至少是矩阵大小的平方根)。
Embree(1999)GMRES收敛界限的描述性如何?在伪光谱方面进行了有见地的讨论,伪光谱给出了更清晰的界限,也适用于非对角化矩阵。