Successive over-relaxation method - SOR

We seek the solution to set of linear equations:

$A \cdot X = Q$

For the given matrix A and vectors X and Q.
In matrix terms, the definition of the SOR method can be expressed as :
$x^{(k)} = \left( {D - \omega L} \right)^{ - 1} \left( {\omega U + \left( {1 - \omega } \right)D} \right)x^{(k - 1)} + \omega \left( {D - \omega L} \right)^{ - 1} q$
Where D,L and U represent the diagonal, lower triangular and upper triangular matrices of coefficient matrix A and k is iteration counter.
$\omega$ is extrapolation factor.

The pseudocode for the SOR algorithm:

Algorithm

Chose an intital guess $X^{0}$ to the solution
for k := 1 step 1 untill convergence do
for i := 1 step until n do
$\sigma = 0$
for j := 1 step until i-1 do
$\sigma = \sigma + a_{ij} x_j^{(k)}$
end (j-loop)
for j := i+1 step until n do
$\sigma = \sigma + a_{ij} x_j^{(k-1)}$
end (j-loop)
$\sigma = {{\left( {q_i - \sigma } \right)} \over {a_{ii} }}$
$x_i^{(k)} = x_i^{(k - 1)} + \omega \left( {\sigma - x_i^{k - 1} } \right)$
end (i-loop)
check if convergence is reached
end (k-loop)