共轭梯度比GMRES更好的问题


17

我对共轭梯度比GMRES方法更好的情况感兴趣。

通常,在许多SPD(对称-正定)情况下,CG是首选,因为它需要较少的存储,并且CG的理论收敛速度是GMRES的两倍。实际观察到这样的费率有什么问题吗?对于相同数量的spmvs(稀疏矩阵矢量乘法),GMRES的性能好于CG或与CG相当吗?

Answers:


8

CG所支持的一件事是,它没有使残差多项式的离散l2范数最小化(GMRES所做的事情)。取而代之的是,它将矩阵诱导的范数最小化,并且该矩阵诱导的范数最终最终非常接近能量离散化物理问题的范数,并且由于保护特性的到来,通常这是衡量误差的更合理的准则。来自物理学。

如果执行质量矩阵的Cholesky因式分解不太昂贵,则实际上也可以使用GMRES达到这种效果,您可以强制将内积变成所需的能量内积。

那么,当人们期望CG表现与GMRES完全不同时,就是规范等效性所隐含的常数非常不同的情况。例如,在高阶谱-Galerkin方法中,这是正确的,其中GMRES中使用的离散范数将所有自由度都视为相等,而实际上多项式梯度在边界附近最为锐利(因此,节点聚类),因此该范数与质量矩阵给出的连续L 2范数之间的范数等效常数可能非常大。l2L2


想在这里举一个高阶方法和CG,GMRES和GMRES + Cholesky技巧的收敛历史的例子。但是不幸的是,我手头唯一的二阶问题代码是非对称变量的DG。因此CG不是不适用,不希望看到此操作。
Reid.Atcheson

3
我认为您的答案很重要,但希望您能澄清一下。特别是,这个问题是一个纯线性代数问题,您的答案将通过数值PDE讨论物理规范和质量矩阵等。关于同一Krylov空间中的不同规范的最小化如何导致不同的迭代,我们能否说得准确些?
Andrew T. Barker

除了数值示例之外,我认为还没有进行仔细的理论研究来解释不同的规范如何产生实质上不同的答案。我认为问题在于结果围绕渐近性展开,对于固定的线性系统,理论结果将是相同的模常数因子。如果要进行一些理论研究,我很乐意看到它们,但在询问了本部门的一些数字线性代数专家之后,似乎还没有精确的理论分析来说明不同规范会发生什么。
Reid.Atcheson

4

我怀疑对于SPD矩阵,GMRES和CG通常没有太大区别。

假设我们正在用A对称正定和起始猜测x 0 = 0求解并使用CG和GMRES生成迭代,将它们称为x c kx g k。两种迭代方法都将从相同的Krylov空间K k = { b A b A 2 b }构造x k。他们将以略有不同的方式这样做。Ax=bAx0=0xkcxkgxkKk={b,Ab,A2b,}

CG的特征是最小化了A诱导的能量范数中的误差,因此 A e c ke c k= A x - x c kx - x ç ķ= 分钟Ý ķX - Ý X -ekc=xxkcA

(Aekc,ekc)=(A(xxkc),xxkc)=minyK(A(xy),xy).

rk=bAxkg2

(rk,rk)=(bAxkg,bAxkg)=minyK(bAy,bAy).
Aek=rk
(rk,rk)=(Aekg,Aekg)=(A2ekg,ekg)
AAA2AA

K1={b}x1=αb

α=(b,b)(Ab,b)
α=(Ab,b)(A2b,b).
A(ϵ,1,1,1,)b=(1,1,0,0,0,)ϵ0Ab 这样两个差异的因素会在整个迭代过程中持续下去,但是我怀疑它会变得更糟。

2
Let b=(1,ϵ,0,0,). Then |b|=1+ϵ, bTAb=2ϵ, and bTA2b=ϵ1+ϵ2. Thus αCG=ϵ1+12ϵ1, but αGMRES=21+ϵ22. That is, the initial vector is already of the correct scale for making the residual small, but needs to be scaled by ϵ1 to make the error small.
Jed Brown

3

One thing is that GMRES is never used wherever CG can be applied. I dont think it does make sense to compare these two. For SPD matrices, CG is definitely the winner because of the storage requirements and the reasons you mentioned above. A question that would be interesting is, to find an extension of CG, that is applicable to problems where CG can not be applied. There are methods like BiCG-stab that do not require linearly increasing memory like GMRES, but the convergence is not as good as GMRES (some times even with restarted GMRES).


2
There are the IDR schemes which bridge the gap between GMRES and BiCG in terms of memory savings, stability, and convergence: ta.twi.tudelft.nl/nw/users/gijzen/IDR.html I'm not sure I agree that GMRES shouldn't be used if CG could be. If you can do a cholesky factorization of a matrix which induces your energy norm, then you can feed that into a symmetric Lanczos iteration and obtain a three term recurrence solution that will behave very nearly like CG. Of course, CG is the easier option, but the option is available :)
Reid.Atcheson

2
If you use a Krylov smoother, for instance, then GMRES is likely preferable because it uses a weaker norm that targets larger eigenvalues which tend to be higher frequency.
Jed Brown
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.