🔁Linear Systems: Iterative Methods
Successive Over-Relaxation
SOR, Young's optimal ω, cost versus grid size, red–black ordering and stopping criteria
Cambridge, Massachusetts, 1950
David M. Young is a graduate student in mathematics at Harvard, supervised by Garrett Birkhoff. Electronic computers are just beginning to solve the partial differential equations of physics on grids, and the bottleneck is obvious: Gauss–Seidel on a fine grid needs tens of thousands of sweeps.
Young studies a variant engineers had tried by hand: compute the Gauss–Seidel correction, then multiply it by a factor a little larger than 1 — over-relax. Engineers chose by feel. Young's thesis, Iterative Methods for Solving Partial Difference Equations of Elliptic Type, does something different: for a large class of matrices it finds the exact optimal , and proves how fast the iteration then converges.
The result is startling. On a fine grid, the right makes the method not twice as fast, or ten times, but hundreds of times faster. Stanley Frankel at Caltech found the same idea independently that year. SOR became the workhorse of reactor physics and fluid dynamics codes for the next two decades.
Let be the value Gauss–Seidel would assign to . SOR moves further in the same direction:
ω = 1 is Gauss–Seidel. ω > 1 over-relaxes, ω < 1 under-relaxes (useful to damp oscillating nonlinear iterations). Outside 0 < ω < 2 SOR always diverges (Kahan's theorem).
Derivation
SOR as a splitting, and why must lie between 0 and 2
Write the update for component with the Gauss–Seidel value spelled out, and multiply by :
Move the new values to the left. With as in lesson 4-1, all rows together read
Kahan's bound. Both bracketed matrices are triangular, so their determinants are the products of their diagonals: and . Hence . A determinant is the product of the eigenvalues, so at least one eigenvalue has , and
For or this is at least 1, and SOR cannot converge, whatever the matrix.
💡Young's optimal ω
For matrices with 'Property A' — which includes every five-point grid matrix — Young showed that the SOR spectral radius depends only on and the Jacobi spectral radius , and is smallest at
For the model problem , so and . Compare Gauss–Seidel's : SOR's convergence rate degrades like , not .
Derivation
From Young's relation to
Young's thesis proved that, for matrices with Property A, every eigenvalue of the SOR matrix is linked to an eigenvalue of the Jacobi matrix by
We take that relation as given and find the best from it. Multiplied out, it is a quadratic in :
Its two roots multiply to . When the discriminant is negative the roots are complex conjugates of equal size, so each has , which grows as grows. When it is positive the roots are real, and the larger one shrinks as grows. The best is where the two regimes meet. The discriminant of the quadratic works out to , so the meeting point is where the bracket is zero:
the last step multiplying top and bottom by . There . The worst case is the largest Jacobi eigenvalue, .
The model problem. With , , so
One digit costs sweeps: proportional to instead of Gauss–Seidel's . For that is the 24,039 against 117.6 of the table.
| N | Jacobi | Gauss–Seidel | optimal SOR |
|---|---|---|---|
| 10 | 56 | 28 | 4.0 |
| 40 | 784 | 392 | 15.0 |
| 160 | 12,094 | 6,047 | 59.0 |
| 320 | 48,078 | 24,039 | 117.6 |
Sweeps per decimal digit for the model Laplace problem on an N × N grid (from the spectral radii)
📐Choosing ω on the plate
On the plate grid, . Sweeps to a change below :
: 740 · : 248 · : 108 · : 80 · : 105 · : 213 · : 442.
The curve has a sharp minimum, and it is asymmetric: overshooting a little costs far less than undershooting. When is not known exactly, err on the high side.
The first principle is that you must not fool yourself — and you are the easiest person to fool.
When to stop. The cheapest test — stop when no value changes by more than some — is also the most dangerous. For an iteration with rate , the remaining error is roughly
When , a change of hides an error of about . Slow iterations look converged long before they are (the derivation below shows where the factor comes from). On the plate, Gauss–Seidel stopped by a update test is still °C wrong; SOR, with a much smaller , stops at . Prefer a test on the relative residual , and remember lesson 3-2: a small residual means a small error only when is well conditioned.
Derivation
How much error a small update hides
Once one mode dominates, each sweep multiplies the error by about : . The update you can see is the difference of two consecutive iterates, which is also the difference of their errors (the exact solution cancels):
Turn it round:
For the error is about the size of the update; for it is a thousand times larger. It is the same bound as for a scalar contraction in lesson 2-3, with replaced by .
💡Red–black ordering
Colour the grid like a chessboard. Every red point's four neighbours are black, and vice versa. So all red points can be updated simultaneously using the current black values, then all black points using the new red values. Each half-sweep is a single vectorised (or parallel) operation, yet the result is a genuine Gauss–Seidel/SOR sweep in a different ordering — with the same optimal and convergence rate for the model problem. It is how SOR is written in NumPy and on GPUs.
💡Where you will use this
CFD: pressure-correction methods (SIMPLE and its descendants) under-relax velocity and pressure updates with factors like 0.7 and 0.3 — the same , used for stability rather than speed. Geotechnics and Hydraulics: SOR remains a quick, memory-light solver for seepage and groundwater grids. Power Systems: accelerated Gauss–Seidel load flow used acceleration factors around 1.6.
📚Further reading
- David M. Young, Iterative Solution of Large Linear Systems (Academic Press, 1971; Dover reprint 2003) — Young's own book, with the full theory of the optimal .
- Yousef Saad, Iterative Methods for Sparse Linear Systems (2nd ed., SIAM, 2003), chapter 4 — SOR, red–black ordering and stopping criteria.
- William Kahan, Gauss–Seidel Methods of Solving Large Systems of Linear Equations, PhD thesis, University of Toronto (1958) — where the bound first appeared.
↓But there is a problem
SOR is a big improvement, but it shares a weakness with Jacobi and Gauss–Seidel: it is stationary. Every sweep applies the same fixed rule, and the method remembers nothing but its latest iterate. And it needs , which is known exactly only for model problems.
In 1952 Magnus Hestenes and Eduard Stiefel published a method that remembers. Each step chooses its direction so that it never undoes the progress of any earlier step. In exact arithmetic it finds the solution of an system in at most steps.
Then, for almost twenty years, almost nobody used it.