MATH 8445-8446
Numerical Analysis of Differential Equations

MATH 8445, Fall 2017: MWF 11:15-12:05 Vincent Hall 209
Instructor: Douglas N. Arnold
Contact info: 512 Vincent Hall, tel: 6-9137, email: 
Office hours: Tuesday 11:15-12:05, Friday 12:10-1:00

About the course: This is a two-semester graduate level introduction to the numerical solution of partial differential equations. The first semester will begin with finite difference methods for the Laplacian and the basic techniques to analyze them (maximum principle, Fourier analysis, energy estimates). It will then continue with a study of numerical linear algebra relevant to solution of discretized PDEs, such as those arising from the finite difference discretization of the Laplacian (classical iterations, conjugate gradients, multigrid). The remainder of the course will be devoted to finite element methods for elliptic problems, and their analysis. In the first semester we will introduce finite element methods for elliptic problems and analyze their behavior mathematicially. At the end of the semester and during the second semester we will treat more advanced topics in finite elements: time-dependent problems, C1 finite elements, nonconforming finite finite elements, mixed methods, and various applications, such as the Stokes and Navier-Stokes equations, elasticity, and Maxwell's equations.

The course will include computational examples and projects using Python, and, especially, the FEniCS finite element software environment. A feature of the course is that we will emphasize a uniform framework based on consistency and stability to analyze both finite element and finite difference methods, for both stationary and time-dependent problems.

Sleipner

The cost for inadequate numerical analysis can be high. The first time this offshore platform was installed, it crashed to the sea bottom causing a seismic event measuring 3.0 on the Richter scale and costing $700,000,000. The cause: flawed algorithms for the numerical solution of the relevant partial differential equations. For more information see here.

Text and syllabus: The course will follows these Lecture Notes. The table of contents may be taken as the syllabus for the course.

Other references: Similar material is covered in numerous texts. The following are all available online through the University of Minnesota libraries.

Lecture schedule: The lecture schedule is here.

Exams and homework: There will be homework sets including computational assignments, an in-class midterm, and a final exam. The midterm exam will be held on Friday October 20 at class time. The final exam will be on Wednesday December 18 from 1:30-3:30.

Homework:

Programming: The course will use Python in class examples, and students are expected to do class assignments in Python. This includes the key tools of the Python ecosystem for scientific computing: NumPy (numerical Python), SciPy (scientific Python), and Matplotlib (for plotting). Here is a nice Introduction to Python, NumPy, SciPy, and Matplotlib. More tutorial and reference material is at SciPy.org, and you can find much more on the web. Midway through the first semester we will begin to use FEniCS. The FEniCS tutorial is an excellent introduction.

Code: Programs studied in class, etc., are here.

Class expectations: Students are expected to attend the lectures and read the notes in coordination with them. The lectures and notes will be terse at times, and students are expected to work out and fill in the details. You may discuss homework problems with me or with other students. However, you must write up your solution independently and in your own words, and all students must write their own code for the computer assignments.


Updated September 20, 2017