Resources

Textbooks

Primary

Golub, G. H. and Van Loan, C. F., Matrix Computations, 4th edition. Johns Hopkins University Press, 2013.

The spine of this course. Van Loan maintains a companion page with material that is not in the printed book and is free to download:

Note: the URL cited in most papers, cs.cornell.edu/cv/GVL4/golubandvanloan.htm, is dead. The links above are the current ones.

A Chinese edition of the 3rd edition, translated by Ya-Xiang Yuan and colleagues, is published by Science Press.

Supplementary

Horn, R. A. and Johnson, C. R., Matrix Analysis, 2nd edition. Cambridge University Press,

  1. The theory reference — strongest for Weeks 2–4 and Week 12, where the results matter more than the algorithms.

Deisenroth, M. P., Faisal, A. A. and Ong, C. S., Mathematics for Machine Learning. Cambridge University Press, 2020. Free online. Required for Week 16 — Golub & Van Loan has no matrix-calculus chapter, so the material on differentials, gradients and backpropagation comes from Chapter 5 of this book.

Courses worth following alongside

Software

Assignments are language-agnostic. Pick one and be fluent in it.

  Reference implementations Sparse and iterative
Python NumPy / SciPy scipy.linalg scipy.sparse, scipy.sparse.linalg, PyAMG
MATLAB built in built in
Julia LinearAlgebra SparseArrays, IterativeSolvers.jl

Two habits worth forming from Week 1:

  1. Always have a reference to check against. scipy.linalg.lu, numpy.linalg.svd, and their equivalents exist so you can verify your own code, not so you can avoid writing it.
  2. Compute in double precision unless you are deliberately studying precision. In single precision the residual of a well-posed problem plateaus around 1e-6, and a tolerance below that is unreachable — a very common way to convince yourself a correct solver is broken.

Reference implementations to read

Reading good numerical code is underrated. These are worth an afternoon each: