Is it possible to vary the preconditioner at every step? For example, as we proceed through the iterations, we may be able to improve our guess for . We may want to use this varying preconditioner in PCG.
The previous derivation becomes invalid because changes. This leads to a slowdown in the convergence.
The convergence may be improved, nonetheless, if we use the following modified update for :
In our previous derivations for CG and PCG, the numerator could be simplified, but this is no longer possible with a varying preconditioner. For example, we show below that, in PCG, we have so that the ratio is, in PCG:
Here are some additional details about this result. Previously in CG, when computing we had this numerator:
since .
In PCG, we have a similar relation. Using the previous notations for the PCG residuals we get
Since in PCG, we have , we get
However, as pointed out above, the relation no longer holds exactly in the flexible PCG algorithm since keeps changing.
The fPCG algorithm can be shown to be locally optimal. That is, it does not converge slower than the steepest descent method, which is locally optimal.