【问题标题】:Why does preconditioned CG converge faster than basic CG为什么预处理 CG 比基本 CG 收敛得更快
【发布时间】:2015-11-10 15:17:57
【问题描述】:

是否有任何直观的解释来说明为什么预条件共轭梯度 (CG) 算法比基本 CG 算法收敛得更快。

【问题讨论】:

  • 我投票结束这个问题,因为它不是关于编程,而是关于线性代数。
  • @HighPerformanceMark 这里是纯计算机科学问题吗?对我来说,这是一个纯粹的数值方法问题,不是关于线性代数,而是关于用计算机解决线性代数问题的理论。
  • 纯粹的计算机科学问题在这里是主题吗? 通常不是,在 SE 世界中还有另一个站点供他们使用。但我也不会将其归类为纯 cs 问题。

标签: algorithm numerical-methods


【解决方案1】:

共轭梯度等效于预条件共轭梯度,其具有用于预条件子的单位矩阵。如果您可以将矩阵本身用作预处​​理器,那么 PCG 将在一次迭代中收敛。希望是,通过使用与矩阵“更相似”而不是恒等式但比矩阵本身更容易求解的预条件子,PCG 将比 CG 更快地求解到同等质量。

【讨论】:

    【解决方案2】:

    This link 提供了我认为令人满意的解释。
    基本上,共轭梯度法的收敛速度取决于sqrt(kappa(A)),即要求解的矩阵的条件数。所以你要做的是选择一个矩阵M 这样kappa(inv(M) * A) < kappa(A) 然后求解系统inv(M) * A * x = inv(M) * b。这将需要更少的迭代来求解,因为要求解的矩阵的条件数小于原始矩阵。

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      相关资源
      最近更新 更多