Conjugate Gradient Methods
1. Introduction
CG is invected last centry (1952 by Hestenes and Stiefel), for solve “large” problems, as they didn’t have the powerful computer as we do. The same motive can for the present development.
The main property of CG is :
- It donnot need to save the exact form of Hessien matrix.(which could be extremely large for large problems)
- It won’t solve the inverse of the Hessien, it only need to calculate the dot product with a input vector.
CG方法一开始发明在上个世纪(1952年,Hestenes and Stiefel),作为直接求解的方法,一开始的动力是因为那时代的电脑完全没有我们现在的电脑强大。在更早的时候,甚至没有电脑存在,那种情况下使用基础的牛顿法求解一个几百个参数的系统,几乎是不可能的(因为我们要对一个100x100的矩阵求逆!),而在那个时代,几乎没有人会使用牛顿法。于是,聪明的数学家就发明这种共轭梯度方法(CG),CG的特点就是:
- 不需要完整的将A矩阵的逆( A − 1 A^{-1} A−1)表达出来。
- 而需要的只是:能够衡量A和一个向量的点乘(evaluate A*x)。
现在的时代,我们的计算机已经非常非常强大了,100x100的系统对我们来说非常非常小,几个毫秒就可以求解完。最初提出CG所想要解决的问题已经不存在了,不过CG可以解决我们遇到的其他问题:
计算机内存不足的问题(因为不需要真正存储整个A矩阵或者A的逆)
- 有一些情况下,A可能不能直接给到我们(比如处于公司保密等情况),但是他们能提供Ax的结果。这种情况下,CG也是很合适的。(当然,我们可以通过Ae,分别点乘所有的基单位向量恢复原本的A)
- A可能具有特殊结构的情况,比如我们下面将看到的例子(A是一个块矩阵和一个稀疏矩阵的和 A = A b l k + A s p A = A_{blk}+A_{sp} A=Ablk+Asp)这种情况下我们有 A x = A b l k x + A s p x Ax = A_{blk}x+A_{sp}x Ax=