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.