Skip to article frontmatterSkip to article content

Next steps

The iterative solution of large linear systems is a vast and difficult subject. A broad yet detailed introduction to the subject, including classical topics such as Jacobi and Gauss–Seidel methods not mentioned in this chapter, is Saad (2003). A more focused introduction to Krylov methods is given in van der Vorst (2003).

The conjugate gradient method was originally intended to be a direct method. Theoretically, the answer is found in nn steps if there are nn unknowns if the arithmetic is perfect. However, for floating-point arithmetic this result no longer holds. The trouble is that as the method progresses, the succeeding search directions become closer to being dependent, and this causes problems for conditioning and floating-point computation. The method was not successful until it came to be viewed as an iterative method that could be stopped once a reasonable approximation was reached. The method was discovered by Hestenes and Stiefel independently, but they joined forces to publish the widely cited paper Hestenes & Stiefel (1952) as part of an early research program in computing run by what was then called the (US) National Bureau of Standards (now called the National Institute of Standards and Technology). It took until the 1970s for the method to catch on as a computational method (Golub & O'Leary (1989)). The interested reader can visit the SIAM History Project’s articles at http://history.siam.org/hestenes.htm to find an article by Hestenes that recounts the discovery (reprinted from Nash (1990)).

An important instance of matrix-free iteration occurs in using Newton’s method to solve a nonlinear system of equations. The key step is to solve a linear system with the Jacobian matrix, which can be expensive to compute. However, applying the Jacobian to a vector is equivalent to taking a derivative in the direction of that vector, which can be approximated by a single finite difference. This observation leads to the idea of Newton–Krylov methods. A good introduction to this topic is given in Knoll & Keyes (2004).

For those not experienced with preconditioning, it can seem like something of an art. The approach that works best very often depends on the application. Summaries of some approaches can be found in Quarteroni et al. (2007) and Trefethen & Bau (1997).

References
  1. Saad, Y. (2003). Iterative Methods for Sparse Linear Systems: Second Edition. SIAM.
  2. van der Vorst, H. A. (2003). Iterative Krylov Methods for Large Linear Systems. Cambridge University Press.
  3. Hestenes, M. R., & Stiefel, E. (1952). Methods of Conjugate Gradients for Solving Linear Systems. Journal of Research of the National Bureau of Standards, 49(6), 409. 10.6028/jres.049.044
  4. Golub, G. H., & O’Leary, D. P. (1989). Some History of the Conjugate Gradient and Lanczos Algorithms: 1948–1976. SIAM Review, 31(1), 50–102. 10.1137/1031003
  5. Nash, S. (1990). A History of Scientific Computing. Addison-Wesley Publishing Company.
  6. Knoll, D. A., & Keyes, D. E. (2004). Jacobian-Free Newton–Krylov Methods: A Survey of Approaches and Applications. Journal of Computational Physics, 193(2), 357–397. 10.1016/j.jcp.2003.08.010
  7. Quarteroni, A., Sacco, R., & Saleri, F. (2007). Numerical Mathematics. Springer.
  8. Trefethen, L. N., & Bau, D. (1997). Numerical Linear Algebra. SIAM.