by Tobin A. Driscoll and Richard J. Braun

Cover of the book

The book is available for purchase from the SIAM Bookstore. Note that SIAM members get a 30% discount. Student memberships are free at some institutions, and $25 (USD) anywhere else.

This textbook is designed to introduce undergraduates in math, computer science, engineering, and related fields to the principles and practice of numerical computation. Our approach emphasizes linear algebra and approximation. The text presents mathematical underpinnings and analysis, complemented with 45 functions and over 160 examples coded in MATLAB, all available for download. Previous experience in MATLAB is not required. The text is organized to be useful for either a one-semester introduction or two-semester sequence, with the most advanced techniques and concepts held back for the second half of the book.


The book's functions and example scripts can be downloaded as a MATLAB toolbox and installed by double-clicking the file. Alternatively, you can visit the Github page that has the toolbox files, as well as suggested in-class labs and projects, slides for instructors, and links to some (slightly outdated) videos linked to the text.


  1. Numbers, problems, and algorithms
  2. 1.1. Floating point numbers
    1.2. Problems and conditioning
    1.3. Stability of algorithms
  3. Square linear systems
  4. 2.1. Polynomial interpolation
    2.2. Computing with matrices
    2.3. Linear systems
    2.4 LU factorization
    2.5. Efficiency of matrix computations
    2.6. Row pivoting
    2.7. Vector and matrix norms
    2.8. Conditioning of linear systems
    2.9. Exploiting matrix structure
  5. Overdetermined linear systems
  6. 3.1. Fitting functions to data
    3.2. The normal equations
    3.3. The QR factorization
    3.4. Computing QR factorizations
  7. Roots of nonlinear equations
  8. 4.1. The rootfinding problem
    4.2. Fixed point iteration
    4.3. Newton's method in one variable
    4.4. Interpolation-based methods
    4.5. Newton for nonlinear systems
    4.6. Quasi-Newton methods
    4.7. Nonlinear least squares
  9. Piecewise interpolation and calculus
  10. 5.1. The interpolation problem
    5.2. Piecewise linear interpolation
    5.3. Cubic splines
    5.4. Finite differences
    5.5. Convergence of finite differences
    5.6. Numerical integration
    5.7. Adaptive integration
  11. Initial-value problems for ODEs
  12. 6.1. Basics of IVPs
    6.2. Euler's method
    6.3. Systems of differential equations
    6.4. Runge-Kutta methods
    6.5. Adaptive Runge-Kutta
    6.6. Multistep methods
    6.7. Implementation of multistep methods
    6.8. Zero-stability of multistep methods
  13. Matrix analysis
  14. 7.1. From matrix to insight
    7.2. Eigenvalue decomposition
    7.3. Singular value decomposition
    7.4. Symmetry and definiteness
    7.5. Dimension reduction
  15. Krylov methods in linear algebra
  16. 8.1. Sparsity and structure
    8.2. Power iteration
    8.3. Inverse iteration
    8.4. Krylov subspaces
    8.5. GMRES
    8.6. MINRES and conjugate gradients
    8.7. Matrix-free iterations
    8.8. Preconditioning
  17. Global function approximation
  18. 9.1. Polynomial interpolation
    9.2. The barycentric formula
    9.3. Stability of polynomial interpolation
    9.4. Orthogonal polynomials
    9.5. Trigonometric interpolation
    9.6. Spectrally accurate integration
    9.7. Improper integrals
  19. Boundary-value problems
  20. 10.1. Shooting
    10.2. Differentiation matrices
    10.3. Collocation for linear problems
    10.4. Nonlinearity and boundary conditions
    10.5. The Galerkin method
  21. Diffusion equations
  22. 11.1. Black-Scholes equation
    11.2. The method of lines
    11.3. Absolute stability
    11.4. Stiffness
    11.5. Method of lines for parabolic PDEs
  23. Advection equations
  24. 12.1. Traffic flow
    12.2. Upwinding and stability
    12.3. Absolute stability for advection
    12.4. The wave equation
  25. Two-dimensional problems
  26. 13.1. Tensor-product discretizations
    13.2. Two-dimensional diffusion and advection
    13.3. Laplace and Poisson equations
    13.4. Nonlinear elliptic PDEs


Page 165 / Exercise 4.6.4
The Sherman-Morrison formula is given incorrectly (specifically, the denominator). It should read (A+uv^T)^{-1}=A^{-1} - A^{-1} \frac{uv^{T}}{1+v^{T} A^{-1} u} A^{-1}
(Thanks to Claudio Torres.)

Page styled with Metro UI CSS