### by Tobin A. Driscoll and Richard J. Braun

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.

### Resources

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.

### Contents

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
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.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.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
24. 12.1. Traffic flow
12.2. Upwinding and stability
12.4. The wave equation
25. Two-dimensional problems
26. 13.1. Tensor-product discretizations