A unified introduction to the theory and practice of modern, near linear-time, numerical methods for large-scale partial-differential and integral equations. Topics include: preconditioned iterative methods; generalized Fast Fourier Transform and other butterfly-based methods; multiresolution approaches including multigrid algorithms, hierarchical low-rank matrix decompositions, and low and high frequency Fast Multipole Methods. Example applications include: aircraft design, cardiovascular system modeling, electronic structure computation, and tomographic imaging.

Grad H subject. Units: 3-0-9. The class is suitable for graduate students from all departments who have affinities with mathematics.


Introduction: PDE vs. integral equations, Fourier-based numerical methods.

Exterior problems:

Interior problems and variable media:

High-frequency problems:

Prerequisites: Some familiarity with ordinary differential equations, partial differential equations, Fourier transforms, linear algebra, and basic numerical methods for PDE, at the level of 18.085. The assignments will involve computer programming in the language of your choice (Matlab recommended).

Figures: top-right, the hierarchical tree structure of the butterfly algorithm. Bottom-left, low-rank interactions in the electromagnetic far-field

Reference material

Here is the current version of the class notes by Laurent Demanet: 04/23/2014

Three references books covering background material on numerical methods for PDE.

Who, when, and where

Date and Time: Tu-Th, 9:30-11:00, room E17-128.
Instructors: Alex Townsend.
Office hours: Email the instructor.


50% homework, 50% course project.

The homework problem sets will consist of both theoretical problems and numerical experiments. No late copy will be allowed. The lowest score will be dropped. Collaboration is allowed, but the codes and copies you turn in must be original and written by you.

The course project will be of a computational or mathematical nature. Each student will have a different project (hopefully tailored to their taste). The project report should be written like a publication: clear and concise. It is a good idea to use LaTeX for the typesetting. Here is a list of possible project topics.

Important dates:

Extra material

Here are some useful MATLAB scripts: