Skip to article frontmatterSkip to article content

Preconditioning

An important aspect of MINRES and CG (and, by extension, GMRES) is that the convergence of a Krylov method can be expected to deteriorate as the condition number of the matrix increases. Even moderately large condition numbers can make the convergence impractically slow. Therefore, it’s common for these methods to be used with a technique to reduce the relevant condition number.

More specifically, (8.8.1) is known as left preconditioning, which is the simplest and most common type.

As usual, we do not want to actually compute M1\mathbf{M}^{-1} for a given M\mathbf{M}. Instead, we have a linear system with the matrix M1A\mathbf{M}^{-1}\mathbf{A}. In a Krylov method, the operation “let v=Au\mathbf{v}=\mathbf{A}\mathbf{u}” becomes a two-step process:

  1. Set y=Au\mathbf{y}=\mathbf{A}\mathbf{u}.
  2. Solve Mv=y\mathbf{M}\mathbf{v}=\mathbf{y} for v\mathbf{v}.

As an implementation detail, it is common to provide the Krylov solver with code that does step 2; if the matrix M\mathbf{M} is given, the default is to use sparse factorization.

There are competing objectives in the choice of M\mathbf{M}. On one hand, we want M1AI\mathbf{M}^{-1}\mathbf{A}\approx \mathbf{I} in some sense because that makes (8.8.1) easy to solve by Krylov iteration. Hence, MA\mathbf{M}\approx \mathbf{A}. On the other hand, we desire that solving the system Mv=y\mathbf{M}\mathbf{v}=\mathbf{y} be relatively fast.

8.8.1Diagonal preconditioning

One of the simplest choices for the preconditioner M\mathbf{M} is a diagonal matrix. This definitely meets the requirement of being fast to invert: the solution of Mv=y\mathbf{M}\mathbf{v}=\mathbf{y} is just vi=yi/Miiv_i=y_i/M_{ii}. The only question is whether it can be chosen in such a way that M1A\mathbf{M}^{-1}\mathbf{A} is much more amenable to Krylov iterations than A\mathbf{A} is. This may be the case when the rows of A\mathbf{A} differ greatly in scale, or when A\mathbf{A} is diagonally dominant (see (2.9.1)).

8.8.2Incomplete factorization

Another general-purpose technique is the incomplete LU factorization. Since true factorization of a sparse matrix usually leads to an undesirable amount of fill-in, incomplete LU sacrifices exact factors by dropping elements smaller than an adjustable threshold.

In practice, good preconditioning is often as important, if not more important, than the specific choice of Krylov method. Effective preconditioning may require deep understanding of the underlying application, however, which limits our ability to go into further details. For instance, the linear system may be some approximation of a continuous mathematical model, and then M\mathbf{M} can be derived by using a cruder form of the approximation. Krylov methods offer a natural way to exploit these and other approximate inverses.

8.8.3Exercises