The convergence of the iteration can be improved by the method of
Gauss-Seidel iteration. Its basic idea is to use the new iterated values
immediately when they are available, and not to postpone their usage until
the next iteration step. Consider the calculation of
in the normal
iteration:
During the calculation of
, values
have already been calculated, so they can be used instead of their previous
value, modifying the iteration, thus:
(recall that
in the radiosity equation).
A trick, called successive relaxation,
can further improve the speed of convergence. Suppose that during the
mth step of the iteration the radiosity vector
was
computed. The difference from the previous estimate is:
showing the magnitude of difference, as well as the direction of the
improvement in N dimensional space. According to practical
experience, the direction is quite accurate, but the magnitude is
underestimated, requiring the correction by a relaxation factor
:
The determination of
is a crucial problem. If
it is too small, the convergence will be slow; if it is too great, the
system will be unstable and divergent. For many special matrices, the
optimal relaxation factors have already been determined, but concerning our
radiosity matrix, only practical experiences can be relied on. Cohen [CGIB86] suggests that relaxation factor 1.1 is
usually satisfactory.