An important question to ask when using any iterative method is: When do
I stop? For our root finding algorithms, we have set an absolute
tolerance tol, and iterated until either
,
or we reached a maximum number of iterations. How small should the
tolerance be? A simple rule of thumb is that the tolerance should not be
much smaller than
.
But that is not a hard-and-fast perscription.
It may happen that you set your tolerance too small for the system you are trying to solve. If you monitor the error, you may find that the convergence ``stalls''. That is, iterations start converge nicely but, at some iterate, the error stops decreasing with further iterations.
A partial response to stall is contained in a second approach to the issue,
namely ask that that iteration reduce an initial error
by a specified amount. That is, assume that your initial error is
. Then iterate until the error is less than
, where
the reduction factor
is small.
In many packaged libraries, you have an option of setting either an absolute error stopping criterion or a relative error criterion. Many codes suggest testing both.