Math/CSCI 164: Scientific Computing

This course is meant to introduce you to computational techniques applied to problems in the sciences and engineering. Topics will include: modeling of physical problems, computer implementation, analysis of results; use of mathematical software; numerical methods chosen from: solutions of linear and nonlinear algebraic equations, solutions of ordinary and partial differential equations, finite elements, linear programming, optimization algorithms, and fast Fourier transforms.

Resources

There is no required textbook for this course. My lectures will be primarily based upon Fundamentals of Numerical Computation by Driscoll and Braun. Other excellent references include Numerical Methods for Scientific Computing by Novak, Numerical Linear Algebra with Julia by Darve and Wootters, Numerical Linear Algebra by Trefethen and Bau, and Applied Numerical Linear Algebra by Demmel.

Software

We will frequently program and run numerical experiments in this course. We will work in Julia.

Tentative Course Schedule

Week Lecture Topic FNC Section
1 1 Floating point numbers, Conditioning
Slides
1.1, 1.2
2 Algorithms, Stability, Linear algebra review
Slides
1.3, 1.4
2 3 Polynomial interpolation, Linear systems
Slides
2.1, 2.2, 2.3
4 LU factorization, Row pivoting
Slides
2.4, 2.5, 2.6
3 5 Vector and matrix norms, Classical iterative methods
Slides
2.7
6 Conditioning of linear systems, Matrix structure
Slides
2.8, 2.9, 8.1
4 7 Fitting to data, Normal equations, Space of linear systems
Slides
3.1, 3.2
8 QR factorizations
Slides
3.3, 3.4
5 9 Rootfinding methods
Slides
4.1, 4.2
10 Newton's and interpolation-based method
Slides
4.3, 4.4
6 11 Nonlinear systems, Quasi-Newton methods
Slides
4.5, 4.6
12 Nonlinear least-squares
Slides
4.7
7 13 Interpolation and splines
Slides
5.1, 5.2, 5.3
14 Finite differences
Slides
5.4, 5.5
8 15 Numerical integration
Slides
5.6, 5.7
16 Basic methods for IVPs
Slides
6.1, 6.2
9 17 Runge-Kutta methods
Slides
6.3, 6.4
18 Adaptive and multistep methods Slides 6.5, 6.6
10 19 Implementation and zero-stability of multistep methods
Slides
6.7, 6.8
20 Data as matrices
Slides
7.1
11 21 Matrix decompositions, NMF
Slides
7.2, 7.3
22 Dimension reduction
Slides
7.4, 7.5
12 23 Power iteration
Slides
8.2, 8.3
24 Krylov methods, GMRES
Slides
8.4, 8.5
13 25 MINRES, Conjugate gradients, Matrix-free iterations
Slides
8.6, 8.7
26 Preconditioning
Slides
8.8