Information About

Successive Overrelaxation





FORMULATION

We seek the solution to a set of linear equations
: A \phi = b. \,
Write the matrix ''A'' as ''A'' = ''D'' + ''U'' + ''L'', where ''D'', ''U'' and ''L'' denote the diagonal, strictly lower triangular, and strictly upper triangular parts of A, respectively.

The successive over-relaxation (SOR) iteration is defined by the recurrence relation
:
  • )


Here, φ(''k'') denotes the ''k''th iterate and \omega is a relaxation factor. This iteration reduces to the Gauss–Seidel iteration for ω = 1. As with the Gauss–Seidel method, the computation may be done in place, and the iteration is continued until the changes made by an iteration are below some tolerance.

The choice of relaxation factor is not necessarily easy, and depends upon the properties of the coefficient matrix. For Symmetric , Positive-definite Matrices it can be proven that 0<\omega<2 will lead to convergence, but we are generally interested in faster convergence rather than just convergence.

As in the Gauss–Seidel method, it is not necessary to solve a linear system in order to implement the iteration (∗); indeed, given that the goal is to solve the linear system ''A''φ = ''b'' in the first place, it would be silly to use an iterative method in which a linear system must be solved in each step. Instead, the new iterate can be obtained with the formula

:
\phi^{(k+1)}_i = (1-\omega)\phi^{(k)}_i+ rac{\omega}{a_{ii}} \left(b_i - \sum_{j=1}^{i-1} a_{ij}\phi^{(k+1)}_j - \sum_{j=i+1}^n a_{ij}\phi^{(k)}_j ight),\, i=1,2,\ldots,n.



ALGORITHM


Inputs: ''A'' , ''b'', ω

Output: φ

Choose an initial guess \phi to the solution

repeat until convergence
:for ''i'' '''from''' 1 '''until''' ''n'' '''do'''
::σ ← 0
::for ''j'' '''from''' 1 '''until''' ''i'' − 1 '''do'''
:::σ ← σ + a''ij'' φ''j''
::end (''j''-loop)
::for ''j'' '''from''' ''i'' + 1 '''until''' ''n'' '''do'''

:::σ ← σ + a''ij'' φ''j''
::end (''j''-loop)

:: \phi_i \leftarrow (1-\omega)\phi_i + rac{\omega}{a_{ii}} (b_i - \sigma)
:end (''i''-loop)
:check if convergence is reached
end (repeat)


OTHER APPLICATIONS OF THE METHOD

A similar technique can be used for any iterative method. Values of \omega>1 are used to speedup convergence of a slow-converging process, while values of \omega<1 are often help to establish convergence of diverging iterative process.

There are various methods that "intelligently" set the relaxation parameter \omega based on the observed behavior of the converging process. Usually they help to reach a super-linear convergence for some problems but fail for the others


EXTERNAL LINKS



REFERENCES