![]() |
![]() |
![]() |
![]() | Preconditioning | ![]() |
![]() |
Iterative methods (like conjugate-directions) can sometimes be accelerated by a change of variables. The simplest change of variable is called a ``trial solution.'' Formally, we write the solution as:
![]() |
(3) |
![]() |
![]() |
![]() |
(4) |
![]() |
![]() |
![]() |
(5) |
We hope this change of variables has saved effort.
For each iteration, there is a little more work:
Instead of the iterative application of
and
,
we have iterative application of
and
.
Our hope is that the number of iterations decreases, because we are clever
or because we have been lucky in our choice of
.
Hopefully,
the extra work of the preconditioner operator
is not large compared to
.
If we should be so lucky that
,
then we get the solution immediately.
Obviously we would try any guess with
.
Where I have known such
matrices,
I have often found that convergence is accelerated,
but not by much.
Sometimes, it is worth using
for a while in the beginning;
but later, it is cheaper and faster to use only
.
A practitioner might regard the guess of
as prior information,
like the guess of the initial model
.
For a square matrix
,
the use of a preconditioner should not change the ultimate solution.
Taking
to be a tall rectangular matrix
reduces the number of adjustable parameters,
changes the solution,
gets it quicker, but lowers resolution.
![]() |
![]() |
![]() |
![]() | Preconditioning | ![]() |
![]() |