共轭梯度法

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA

共轭梯度法Template:Lang-en),是求解系数矩阵为对称正定矩阵线性方程组数值解的方法。共轭梯度法是一个迭代方法,它适用于系数矩阵为稀疏矩阵的线性方程组,因为使用像Cholesky分解这样的直接方法求解这些系统所需的计算量太大了。这种方程组在数值求解偏微分方程时很常见。

共轭梯度法也可以用于求解无约束的最優化问题。

双共轭梯度法Template:Lang-en)提供了一种处理非对称矩阵情况的推广。

方法的表述

设我们要求解下列线性系统

Ax=b,

其中 n×n 矩阵 A对称的(即 AT=A),正定的(即 x0,xTAx>0),并且是实系数的。 将系统的唯一解记作 x*

最后算法

经过一些简化,可以得到下列求解 Ax=b 的算法,其中 A 是实对称正定矩阵。

𝐫0:=𝐛𝐀𝐱0𝐩0:=𝐫0k:=0repeatαk:=𝐫k𝖳𝐫k𝐩k𝖳𝐀𝐩k𝐱k+1:=𝐱k+αk𝐩k𝐫k+1:=𝐫kαk𝐀𝐩kif rk+1 is sufficiently small, then exit loopβk:=𝐫k+1𝖳𝐫k+1𝐫k𝖳𝐫k𝐩k+1:=𝐫k+1+βk𝐩kk:=k+1end repeat

结果为 xk+1.

外部链接

相關

参考

共轭梯度法最初出现于

  • Magnus R. Hestenes and Eduard Stiefel(1952),Methods of conjugate gradients for solving linear systems, J. Research Nat. Bur. Standards 49, 409–436.

下列教科书中可以找到该方法的描述

  • Kendell A. Atkinson(1988),An introduction to numerical analysis(2nd ed.),Section 8.9, John Wiley and Sons. ISBN 0-471-50023-2.
  • Gene H. Golub and Charles F. Van Loan, Matrix computations(3rd ed.),Chapter 10, Johns Hopkins University Press. ISBN 0-8018-5414-8.

Template:Authority control