17.11.2012 Views

Numerical recipes

Numerical recipes

Numerical recipes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

866 Chapter 19. Partial Differential Equations<br />

The Gauss-Seidel method, equation (19.5.6), corresponds to the matrix decomposition<br />

(L + D) · x (r) = −U · x (r−1) + b (19.5.13)<br />

The fact that L is on the left-hand side of the equation follows from the updating<br />

in place, as you can easily check if you write out (19.5.13) in components. One<br />

can show [1-3] that the spectral radius is just the square of the spectral radius of the<br />

Jacobi method. For our model problem, therefore,<br />

ρs � 1 − π2<br />

J 2<br />

r � pJ 2 ln 10<br />

π 2<br />

� 1 2<br />

pJ<br />

4<br />

(19.5.14)<br />

(19.5.15)<br />

The factor of two improvement in the number of iterations over the Jacobi method<br />

still leaves the method impractical.<br />

Successive Overrelaxation (SOR)<br />

We get a better algorithm — one that was the standard algorithm until the 1970s<br />

—ifwemakeanovercorrection to the value of x (r) at the rth stage of Gauss-Seidel<br />

iteration, thus anticipating future corrections. Solve (19.5.13) for x (r) , add and<br />

subtract x (r−1) on the right-hand side, and hence write the Gauss-Seidel method as<br />

x (r) = x (r−1) − (L + D) −1 · [(L + D + U) · x (r−1) − b] (19.5.16)<br />

The term in square brackets is just the residual vector ξ (r−1) ,so<br />

Now overcorrect, defining<br />

x (r) = x (r−1) − (L + D) −1 · ξ (r−1)<br />

x (r) = x (r−1) − ω(L + D) −1 · ξ (r−1)<br />

(19.5.17)<br />

(19.5.18)<br />

Here ω is called the overrelaxation parameter, and the method is called successive<br />

overrelaxation (SOR).<br />

The following theorems can be proved [1-3]:<br />

• The method is convergent only for 0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!