Recall that if \(A = D - L - U \) where \(-L \text{,}\) \(D \text{,}\) and \(-U \) are the strictly lower triangular, diagonal, and strictly upper triangular parts of \(A\text{,}\) then the Gauss-Seidel iteration for solving \(A x = y \) can be expressed as \(x^{(k+1)} = (D-L)^{-1}( U x + y ) \) or, equivalently, \(\chi_{i}^{(k+1)} \) solves
\begin{equation*}
A = \begin{array}[t]{c}
\underbrace{\left( \frac{1}{\omega} D - L \right)}\\
M
\end{array}
-
\begin{array}[t]{c}
\underbrace{\left( \frac{1-\omega}{\omega} D + U \right)}\\
N
\end{array},
\end{equation*}
an iteration known as successive over-relaxation (SOR). The idea now is that the relaxation parameter \(\omega\) can often be chosen to improve (reduce) the spectral radius of \(M^{-1} N \text{,}\) thus accelerating convergence.
We continue with \(A = D - L - U \text{,}\) where \(-L \text{,}\) \(D \text{,}\) and \(-U \) are the strictly lower triangular, diagonal, and strictly upper triangular parts of \(A\text{.}\) Building on SOR where
\begin{equation*}
A = \begin{array}[t]{c}
\underbrace{\left( \frac{1}{\omega} D - L \right)}\\
M_F
\end{array}
-
\begin{array}[t]{c}
\underbrace{\left( \frac{1-\omega}{\omega} D + U \right)}\\
N_F
\end{array},
\end{equation*}
where the \(F\) stands for "Forward." Now, an alternative would be to compute the elements of \(x \) in reverse order, using the latest available values. This is equivalent to splitting
\begin{equation*}
A = \begin{array}[t]{c}
\underbrace{\left( \frac{1}{\omega} D - U \right)}\\
M_R
\end{array}
-
\begin{array}[t]{c}
\underbrace{\left( \frac{1-\omega}{\omega} D + L \right)}\\
N_R
\end{array},
\end{equation*}
where the \(R\) stands for "Reverse." The symmetric successive over-relaxation (SSOR) iteration combines the "forward" SOR with a "reverse" SOR, much like the symmetric Gauss-Seidel does: