我对共轭梯度比GMRES方法更好的情况感兴趣。
通常,在许多SPD(对称-正定)情况下,CG是首选,因为它需要较少的存储,并且CG的理论收敛速度是GMRES的两倍。实际观察到这样的费率有什么问题吗?对于相同数量的spmvs(稀疏矩阵矢量乘法),GMRES的性能好于CG或与CG相当吗?
我对共轭梯度比GMRES方法更好的情况感兴趣。
通常,在许多SPD(对称-正定)情况下,CG是首选,因为它需要较少的存储,并且CG的理论收敛速度是GMRES的两倍。实际观察到这样的费率有什么问题吗?对于相同数量的spmvs(稀疏矩阵矢量乘法),GMRES的性能好于CG或与CG相当吗?
Answers:
CG所支持的一件事是,它没有使残差多项式的离散范数最小化(GMRES所做的事情)。取而代之的是,它将矩阵诱导的范数最小化,并且该矩阵诱导的范数最终最终非常接近能量离散化物理问题的范数,并且由于保护特性的到来,通常这是衡量误差的更合理的准则。来自物理学。
如果执行质量矩阵的Cholesky因式分解不太昂贵,则实际上也可以使用GMRES达到这种效果,您可以强制将内积变成所需的能量内积。
那么,当人们期望CG表现与GMRES完全不同时,就是规范等效性所隐含的常数非常不同的情况。例如,在高阶谱-Galerkin方法中,这是正确的,其中GMRES中使用的离散范数将所有自由度都视为相等,而实际上多项式梯度在边界附近最为锐利(因此,节点聚类),因此该范数与质量矩阵给出的连续L 2范数之间的范数等效常数可能非常大。
我怀疑对于SPD矩阵,GMRES和CG通常没有太大区别。
假设我们正在用A对称正定和起始猜测x 0 = 0求解并使用CG和GMRES生成迭代,将它们称为x c k和x g k。两种迭代方法都将从相同的Krylov空间K k = { b ,A b ,A 2 b ,… }构造x k。他们将以略有不同的方式这样做。
CG的特征是最小化了A诱导的能量范数中的误差,因此 (A e c k,e c k)= (A (x - x c k),x - x ç ķ)= 分钟Ý ∈ ķ(甲(X - Ý ),X -
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).