The course is organized into 18 lectures. All lectures consist of a theoretical presentation followed by homework problems [pdf]. Most lectures are also followed by Julia coding assignments.
00.
Introduction
slides [tex, pdf]
01.
Essentials of linear algebra
slides [tex, pdf]
02.
Essentials of the Julia language
slides [tex, pdf]
03.
Floating-point arithmetic and error analysis
slides [tex, pdf],
notebook [ipynb, pdf]
04.
Direct methods for dense linear systems
slides [tex, pdf],
notebook [ipynb, pdf]
05.
Sparse data structures and basic linear algebra subprograms
slides [tex, pdf],
notebook [ipynb, pdf]
06.
Introduction to direct methods for sparse linear systems
slides [tex, pdf]
07.
Orthogonalization and least-squares problems
slides [tex, pdf],
notebook [ipynb, pdf]
08.
Basic iterative methods for linear systems
slides [tex, pdf],
notebook [ipynb, pdf]
09.
Basic iterative methods for eigenvalue problems
slides [tex, pdf]
10.
Locally optimal block preconditioned conjugate gradient
slides [tex, pdf],
notebook [ipynb, pdf]
11.
Arnoldi and Lanczos procedures
slides [tex, pdf],
notebook [ipynb, pdf]
12.
Krylov subspace methods for linear systems
slides [tex, pdf],
notebook [ipynb, pdf]
13.
Multigrid methods
slides [tex, pdf]
14.
Preconditioned iterative methods for linear systems
slides [tex, pdf],
notebook [ipynb, pdf]
15.
Restarted Krylov subspace methods
slides [tex, pdf],
notebook [ipynb, pdf]
16.
Elements of randomized numerical linear algebra
slides [tex, pdf],
notebook [ipynb, pdf]
17.
Introduction to communication-avoiding algorithms
slides [tex, pdf],
notebook [ipynb, pdf]
18.
Matrix function evaluation
slides [tex, pdf],
notebook [ipynb, pdf]