1 Key concerns of numerical methods  
2 Performance: Arithmetic vs. memory  
3 Memory optimization and cache obliviousness  
4 Accuracy and floating-point arithmetic  
5 Floating-point and numerical stability  
6 Backwards stability of summation, norms Problem set 1 due
7 Condition numbers and eigenvalues  
8 The singular-value decomposition  
9 Least-square problems and QR factors  
10 Gram-Schmidt stability and householder QR  
11 Householder, Gaussian, and Cholesky factorization Problem set 2 due
12 Eigenproblems, characteristic polynomials, and Shur factors  
13 Hessenberg factorization and its applications, power methods  
14 QR iteration for eigenproblems  
15 Overview of iterative and sparse solvers Problem set 3 due
16 Arnoldi and Lanczos iterations  
17 Restarting Lanczos iterations  
19 Steepest-descent and conjugate-gradient methods Problem set 4 due
20 Preconditioning and condition numbers of PDE-like matrices  
21 Biconjugate-gradient methods, sparse-direct solvers  
22 Nonlinear conjugate gradient, and conjugate-gradient eigensolvers Final project proposal due
23 Overview of optimization problems  
24 Adjoint methods and sensitivity analysis Midterm taken before Ses #24
25 Adjoint methods for recurrences, CCSA algorithms  
26 Lagrange dual functions and KKT conditions  
27 Quasi-Newton methods Problem set 5 due
28 BFGS updates  
29 Derivative-free optimization: Linear and quadratic models  
30 Global optimization and the DIRECT algorithm  
31 Numerical integration and accuracy of the trapezoidal rule  
32 Clenshaw-Curtis quadrature  
33 Chebyshev approximation  
34 Fast Fourier transforms - the Cooley-Tukey algorithm  
35 FFTW and FFT implementation in practice Final project due at end of term