O sistema deve satisfazer: \(A \in \mathbb{R}^{n \times n}\) simétrica (\(A = A^T\)) e definida positiva (\(x^T A x > 0,\ \forall x \neq 0\)).
Dado \(A \in \mathbb{R}^{n \times n}\) simétrica e definida positiva, e \(b \in \mathbb{R}^n\), o sistema linear
é equivalente ao problema de minimização do funcional quadrático
O gradiente é \(\nabla \phi(x) = Ax - b\), e o ponto crítico satisfaz \(\nabla \phi(x) = 0 \iff Ax = b\).
Um conjunto de vetores \(\{p_0, p_1, \dots, p_{k}\}\) é dito \(A\)-conjugado se
Se \(A\) é definida positiva, vetores \(A\)-conjugados são linearmente independentes. O método CG constrói tais direções iterativamente.
Entrada: \(A = A^T \succ 0\), \(b\), \(M^{-1} \approx A^{-1}\), \(x_0\), \(\varepsilon > 0\), \(k_{\max}\)
Saída: \(x_k\)
Propriedade fundamental: os resíduos são ortogonais: \(r_i^T r_j = 0\) para \(i \neq j\), e as direções são \(A\)-conjugadas.
Em aritmética exata, o CG converge em no máximo \(n\) iterações. A taxa de convergência depende do número de condição \(\kappa(A) = \lambda_{\max}/\lambda_{\min}\):
onde \(\|v\|_A = \sqrt{v^T A v}\). Com precondicionamento, substitui-se \(\kappa(A)\) por \(\kappa(M^{-1}A)\).
O ideal é \(\kappa(M^{-1}A) \approx 1\), o que implica convergência em poucas iterações.
Um bom precondicionador \(M\) deve satisfazer:
Exemplos clássicos:
Hestenes, M. R.; Stiefel, E. Methods of conjugate gradients for solving linear systems. J. Res. Natl. Bur. Stand. 49, 1952.
Saad, Y. Iterative Methods for Sparse Linear Systems. 2nd ed., SIAM, 2003.
Greenbaum, A. Iterative Methods for Solving Linear Systems. SIAM, 1997.
Nocedal, J.; Wright, S. Numerical Optimization. Springer, 2006. (Cap. 5)
Todos os exemplos abaixo satisfazem \(A = A^T \succ 0\).
Para uma matriz simétrica positiva definida \(A\), a fatoração de Cholesky incompleta (IC(0)) calcula uma matriz triangular inferior \(L\) tal que:
onde \(L\) preserva o padrão de esparsidade de \(A\).