$\newcommand{\eps}{\varepsilon} \newcommand{\kron}{\otimes} \DeclareMathOperator{\diag}{diag} \DeclareMathOperator{\trace}{trace} \DeclareMathOperator{\rank}{rank} \DeclareMathOperator*{\minimize}{minimize} \DeclareMathOperator*{\maximize}{maximize} \DeclareMathOperator{\subjectto}{subject to} \newcommand{\mat}[1]{\boldsymbol{#1}} \renewcommand{\vec}[1]{\boldsymbol{\mathrm{#1}}} \newcommand{\vecalt}[1]{\boldsymbol{#1}} \newcommand{\conj}[1]{\overline{#1}} \newcommand{\normof}[1]{\|#1\|} \newcommand{\onormof}[2]{\|#1\|_{#2}} \newcommand{\MIN}[2]{\begin{array}{ll} \minimize_{#1} & {#2} \end{array}} \newcommand{\MINone}[3]{\begin{array}{ll} \minimize_{#1} & {#2} \\ \subjectto & {#3} \end{array}} \newcommand{\MINthree}[5]{\begin{array}{ll} \minimize_{#1} & {#2} \\ \subjectto & {#3} \\ & {#4} \\ & {#5} \end{array}} \newcommand{\MAX}[2]{\begin{array}{ll} \maximize_{#1} & {#2} \end{array}} \newcommand{\MAXone}[3]{\begin{array}{ll} \maximize_{#1} & {#2} \\ \subjectto & {#3} \end{array}} \newcommand{\itr}[2]{#1^{(#2)}} \newcommand{\itn}[1]{^{(#1)}} \newcommand{\prob}{\mathbb{P}} \newcommand{\probof}[1]{\prob\left\{ #1 \right\}} \newcommand{\pmat}[1]{\begin{pmatrix} #1 \end{pmatrix}} \newcommand{\bmat}[1]{\begin{bmatrix} #1 \end{bmatrix}} \newcommand{\spmat}[1]{\left(\begin{smallmatrix} #1 \end{smallmatrix}\right)} \newcommand{\sbmat}[1]{\left[\begin{smallmatrix} #1 \end{smallmatrix}\right]} \newcommand{\RR}{\mathbb{R}} \newcommand{\CC}{\mathbb{C}} \newcommand{\eye}{\mat{I}} \newcommand{\mA}{\mat{A}} \newcommand{\mB}{\mat{B}} \newcommand{\mC}{\mat{C}} \newcommand{\mD}{\mat{D}} \newcommand{\mE}{\mat{E}} \newcommand{\mF}{\mat{F}} \newcommand{\mG}{\mat{G}} \newcommand{\mH}{\mat{H}} \newcommand{\mI}{\mat{I}} \newcommand{\mJ}{\mat{J}} \newcommand{\mK}{\mat{K}} \newcommand{\mL}{\mat{L}} \newcommand{\mM}{\mat{M}} \newcommand{\mN}{\mat{N}} \newcommand{\mO}{\mat{O}} \newcommand{\mP}{\mat{P}} \newcommand{\mQ}{\mat{Q}} \newcommand{\mR}{\mat{R}} \newcommand{\mS}{\mat{S}} \newcommand{\mT}{\mat{T}} \newcommand{\mU}{\mat{U}} \newcommand{\mV}{\mat{V}} \newcommand{\mW}{\mat{W}} \newcommand{\mX}{\mat{X}} \newcommand{\mY}{\mat{Y}} \newcommand{\mZ}{\mat{Z}} \newcommand{\mLambda}{\mat{\Lambda}} \newcommand{\mSigma}{\ensuremath{\mat{\Sigma}}} \newcommand{\mPbar}{\bar{\mP}} \newcommand{\ones}{\vec{e}} \newcommand{\va}{\vec{a}} \newcommand{\vb}{\vec{b}} \newcommand{\vc}{\vec{c}} \newcommand{\vd}{\vec{d}} \newcommand{\ve}{\vec{e}} \newcommand{\vf}{\vec{f}} \newcommand{\vg}{\vec{g}} \newcommand{\vh}{\vec{h}} \newcommand{\vi}{\vec{i}} \newcommand{\vj}{\vec{j}} \newcommand{\vk}{\vec{k}} \newcommand{\vl}{\vec{l}} \newcommand{\vm}{\vec{l}} \newcommand{\vn}{\vec{n}} \newcommand{\vo}{\vec{o}} \newcommand{\vp}{\vec{p}} \newcommand{\vq}{\vec{q}} \newcommand{\vr}{\vec{r}} \newcommand{\vs}{\vec{s}} \newcommand{\vt}{\vec{t}} \newcommand{\vu}{\vec{u}} \newcommand{\vv}{\vec{v}} \newcommand{\vw}{\vec{w}} \newcommand{\vx}{\vec{x}} \newcommand{\vy}{\vec{y}} \newcommand{\vz}{\vec{z}} \newcommand{\vpi}{\vecalt{\pi}} \newcommand{\vlambda}{\vecalt{\lambda}}$

Course schedule

The overall course breaks down into two units (i) dense matrix computations and (ii) sparse and large-scale matrix computations.

A tentative list of lectures and readings follows.
Please see the readings page for an up to date list of course materials.

Unit 1 - Dense matrix computations

1. Aug 22 - Introduction (syllabus)
2. Aug 24 - Survey due Basics and Julia
3. Aug 29 - Norms and geometry, invertible matrices
4. Aug 31 - matrix norms, orthogonal matrices, the SVD
5. Sept 5 - Building a search engine with matrices, more SVD, linear systems
6. Sept 7 - QR decompositions of a matrix
7. Sept 12 - Using linear systems to rank sports teams, LU factorization
8. Sept 14 - More LU, pivoting, flop count for LU
9. Sept 19 - Cholesky factorization, flops of Cholesky
10. Sept 21 - Numerical stability, error analysis
11. Sept 26 - Stability of variance computations, least squares
12. Sept 27 - Flex class.
13. Oct 3 - Review for midterm and review HW
14. Oct 5 - In class
Oct 10 Fall break

A rough reading guide would be:

• Lectures 1-4: Sections 1.1-1.3, 2.1, 2.2, 2.3, 2.4 in Golub and van Loan. Lectures 3,4 in Trefethen
• Lectures 5-8: Sections 1.2, 2.6.1, 3.1, 5.1, 5.2, 3.2, 3.4, 4.2 in Golub and van Loan. Lecture 10 in Trefethen.
• Lectures 9-12: Sections 4.2, 2.7, 2.6, 5.3 in Golub and van Loan. Lectures 11, 12, 13, 14, 17 in Trefethen.

Unit 2 - Sparse and large-scale matrix computations

1. Oct 12 - Sparse storage formats, sparse matrix-vector products
2. Oct 17 - Residuals and linear systems, Jacobi and Gauss-Seidel
3. Oct 19 - Convergence of Jacobi, eigenvalues
4. Oct 24 - Methods to compute eigenvalues, PageRank
5. Oct 26 - Gauss-Seidel and preoprty A, SOR and Richardson
6. Oct 31 - Basics of Arnoldi
7. Nov 2 - GMRES, Krylov
8. Nov 7 - Arnoldi, GMRES, Krylov
9. Nov 9 - Lanczos and Conjugate Gradient
10. Nov 14 - Orthogonal polynomials and CG
11. Nov 16 - GMRES and Mod. Gram Schmidt
12. Nov 21 - Reduction to tridiagonal form for eigenvalues
Nov 23 - Thanksgiving break
13. Nov 28 - Preconditioning and CG convergence
14. Nov 30 - Kronecker products and the Laplacian
15. Dec 5 - Optimal SOR omega,
16. Dec 7 - Final class!

A rough reading guide would be:

• Lecture 15-20: Sections 11.2-11.4 in Golub and van Loan. Trefethen and Bau 32, 24, 27
• Lecture 20-24: Saad Section 6.3-6.5, Trefethen Lecture 33, 35
• Lecture 25: Saad 6.72, Golub and van Loan 10.3.6
• Lecture 26: Trefethen and Bau, Lecture 40, Golub and van Loan 11.5
• Lecture 27-28: Trefethen and Bau, Lecture 26, 28