Textbooks
I will assign reading in these two books, both of which will
be on reserve at the library.
The first edition of Saad is also available
online.
They and several of the other references are published by
SIAM,
the Society for Industrial and Applied Mathematics.
UCSB students can sign up for
free
student membership in SIAM,
which gives you a big discount on their book prices (and is a good
idea for lots of other reasons too).
- T. Davis.
Direct
Methods for Sparse Linear Systems. SIAM, 2006.
This is a concise but thorough introduction to most of the
basic algorithms for sparse direct solvers.
It includes C code in a spartan but readable style;
all the code (complete with Matlab interfaces) is on the book's web site.
- Y. Saad.
Iterative
Methods for Linear Systems. SIAM, second edition 2003.
The first edition is available
online
without charge. Both editions have a comprehensive background on
iterative methods, and are especially strong on incomplete
factorization preconditioning for nonsymmetric problems.
The second edition, but not the first, has a chapter on multigrid.
Other books
- R. Barrett and 9 other authors.
Templates
for the Solution of Linear Systems:
Building Blocks for Iterative Methods. SIAM, 1994.
The full text is also available online in
postscript and
html
without charge.
This contains very concise but very useful descriptions of many
iterative methods, with a little on preconditioning.
- W. Briggs, V. Henson, and S. McCormick.
A
Multigrid Tutorial. SIAM, second edition 2000.
A superb tutorial. The text isn't online but this home
page includes an excellent set of slides that follows the book.
- A. Greenbaum.
Iterative Methods for Solving Linear Systems.
SIAM, 1997.
This contains a wonderfully thorough and quite readable exposition
of the theoretical background for the Krylov subspace iterative methods,
plus a briefer overview of preconditioners, multigrid,
and domain decomposition.
- A. George and J. Liu.
Computer Solution of Sparse Positive Definite Systems.
Prentice-Hall, 1981.
This is the classic work on sparse Cholesky factorization,
introducing the graph-theoretic approach.
It was written before elimination trees, supernodal and multifrontal methods,
and the modern implementations of minimum degree and graph partitioning.
- I. Duff, A. Erisman and J. Reid.
Direct Methods for Sparse Matrices.
Oxford University Press, 1986.
This is especially strong on sparse nonsymmetric methods,
though again it is somewhat out of date.
- A. George, J. Gilbert, and J. Liu.
Graph Theory and Sparse Matrix Computation.
Springer-Verlag, 1993.
This is a broad collection of papers.
- B. Smith, P. Bjorstad, and W. Gropp.
Domain Decomposition:
Parallel Multilevel Methods for Elliptic Partial Differential
Equations.
Cambridge University Press, 1996.
A comprehensive book on various domain decomposition methods and multigrid.
- K. Sigmon and T. Davis.
Matlab Primer.
CRC Press, sixth edition 2002.
A good introduction to Matlab, concise but thorough.
- J. Demmel.
Applied
Numerical Linear Algebra. SIAM, 1997.
This is a wonderful book and you should buy it if you plan
to do anything in computational science or numerical analysis.
It has an excellent chapter on conjugate gradients, but no
sparse direct methods and not much on preconditioning.
- L. Trefethen and D. Bau.
Numerical Linear Algebra.
SIAM, 1997.
This is my favorite book on the numerical aspects of
linear systems, eigenvalues, and their algorithms.
Nothing on sparse direct methods,
but every sparse matrix person should read it anyway.
- G. Golub and C. Van Loan.
Matrix Computations.
Johns Hopkins University Press, third edition 1996.
A very careful and thorough reference on numerical linear algebra.
Papers (this list will grow during the quarter)
- J. Shewchuk,
An introduction to the conjugate gradient
method without the agonizing pain. (What it says. A good paper.)
- Michele Benzi's
survey of preconditioning.
- Several papers on support graph preconditioning:
- Doron Chen and Sivan Toledo,
Vaidya's
preconditioners: Implementation and experimental study.
(The best available experimental work on support-graph preconditioners.)
- Erik Boman and Bruce Hendrickson,
Support
theory for preconditioning.
(A good exposition of the theory behind support-graph preconditioners,
only slightly out of date.)
- Marshall Bern et al.,
Support-graph preconditioners.
(This contains the proof of the bounds for MILU on the model problem
in two and three dimensions. Other than that, it's better to read
Boman and Hendrickson for the theory.)
- Dan Spielman and Shang-Hua Teng,
Nearly-linear time
algorithms for graph partitioning, graph sparsification, and
solving linear systems.
(The most elaborate work on support theory so far, very theoretical
but very pretty. Teasing a practically useful algorithm out of this
work may or may not be possible.)
- References on multigrid and domain decomposition:
-
MGNet home page.
(A repository of all sorts of multigrid software, tutorials,
papers, and information.)
Software
-
CSparse,
a comprehensive library of C sparse matrix routines by Tim Davis that
can be used either standalone or with Matlab.
-
LDL, an example due to Tim Davis of a mexFunction
that interfaces a C code to Matlab.
-
The mesh
partitioning toolbox,
which includes utilities for generating grid graphs,
analyzing elimination orders, plotting graphs and
elimination trees, and nested dissection ordering.
Includes a Matlab interface to the Metis partitioning
and ordering software.
-
TAUCS,
a library of software by Sivan Toledo's group
at Tel-Aviv that contains direct solvers and many different
preconditioners, including several support-graph preconditioners.