Solution (source code)

= Solution

The <Gauss-Seidel method> solves each component using the already updated components from the same iteration. In the splitting $A=D-L-U$, those updated diagonal and lower-triangular terms stay on the left, while upper-triangular terms use the previous iterate. Thus
$$
\boxed{(D-L)x_n=Ux_{n-1}+b.}
$$
Here $D-L$ is lower triangular with nonzero diagonal, so each new iterate is obtained by <forward substitution>, starting from the specified zero vector.