在每次迭代GMRES 方法,计算现有 Krylov 子空间的单个新正交向量。如果该向量的范数为 0(或接近 0),则子空间是“完整的”,我们应该能够计算收敛解。理论上,这发生在我们有正交向量(其中是大小)。
然后可以使用计算解决方案
我的问题是:如果算法只找到正交向量?如何完成 Krylov 子空间以及如何计算如果不是方阵吗?
在每次迭代GMRES 方法,计算现有 Krylov 子空间的单个新正交向量。如果该向量的范数为 0(或接近 0),则子空间是“完整的”,我们应该能够计算收敛解。理论上,这发生在我们有正交向量(其中是大小)。
然后可以使用计算解决方案
我的问题是:如果算法只找到正交向量?如何完成 Krylov 子空间以及如何计算如果不是方阵吗?
我不确定我是否理解这个问题,但是在 GMRES 中,您为空间建立了一个正交基. 在这个空间中,通用向量可以写成:
在各个步骤中,算法计算唯一向量 使得最小化
现在的想法,就像在其他 Krilov 方法中一样,是在一个值之后获得一个好的近似值, 如果然后整个空间,你就有了确切的解决方案。
笔记: 有一个不同的维度尊重你的问题,这是关键,即如果没有问题,这是正常情况,因为矩阵和向量的维数不同。
更多细节的一个很好的参考是:
如果可逆且 Krylov 子空间之后停止扩展步,然后 GMRES(和其他合理的 Krylov 方法)最多收敛到精确解步骤(假设精确算术)。
证明:
的最小多项式是最小度数这样. 总是.
从http://www.maths.lth.se/na/courses/NUM115/NUM115-05/krylov.pdf p.~5 我们得到:
引理让是非奇异的最小多项式的次数. 然后. 因此,. 而且,, 在哪里是特征值的最大 Jordan 块的大小.
根据引理,那么,QED。
不过,一般接近(和几乎所有的随机矩阵),所以这不是 GMRES 好的原因。
根据我表面的 Matlab 测试,Krylov 并不比随机子空间好,因为随机. 因此,GMRES(和其他 Krylov 方法)需要预处理,除非矩阵恰好是好的。然而,在实践中,它通常或至少经常这样做。然而,预处理通常对于足够快的收敛至关重要。
收敛取决于特征值。如果特征值处于紧束中(或大多数特征值与位于许多紧束中),然后 Krylov 方法往往运作良好。
然而,一些方法,如 IDR(s) 或 BiCGSTAB 不喜欢实矩阵的非常非实特征值(然后分别使用 IDRstab 或 BiCGSTAB(l))。IDR* 优于 BiCGSTAB,如果是非常不确定的。有关选择方法的更多信息,请参阅https://scicomp.stackexchange.com/a/34521/34228。