We follow some of the strategies outlined earlier and consider a symmetric preconditioning method. Assume we have a matrix such that has good convergence properties for CG, e.g., a smaller condition number.
is SPD if is non-singular. This is a key property to ensure that CG applies.
We now consider solving the modified linear system using CG:
Here is a possible implementation that follows directly the CG algorithm:
This implementation is cumbersome because of the need to multiply by and . Typically, preconditioners are of the form , and we consider as the new matrix. With this form, we are only required to be able to multiply by , not and .
The preconditioned CG algorithm allows getting rid of in favor of only. This is a significant simplification in the implementation.
PCG is equivalent to the algorithm written above but does the algebra slightly differently to avoid the appearance of .
Krylov subspace
The reason why can be avoided can be traced back to how the Krylov subspace is constructed.
When using , in the Krylov subspace, we use powers of and we get:
We can make this even cleaner with
Only appears!
In terms of the Krylov subspace, we can write:
Multiply by and we get a sequence with and only:
This seems promising. We can construct a Krylov subspace with only.
Note that since we require , with non-singular, the preconditioner must be SPD.