Math 228B - Numerical Solution of Differential Equations

Instructor: Jon Wilkening

Lectures: TuTh 9:30-11:00, Room 3111 Etcheverry

Course Control Number: 54512

Office: 1091 Evans

Office Hours: Monday 10:30-11:55 AM, Tues 3:45-5:00 PM

Prerequisites: Math 128A or equivalent knowledge of basic numerical analysis. Some programming experience (e.g. Matlab, Fortran, C, or C++)

Recommended Reading:
Jon Wilkening, Lecture Notes for Math 228A,B
Randall J. LeVeque, Finite Difference Methods for Ordinary and Partial Differential Equations
Randall J. LeVeque, Finite Volume Methods for Hyperbolic Problems
John C. Strikwerda, Finite difference schemes and partial differential equations
Dietrich Braess, Finite Elements: Theory, Fast Solvers, and Applications in Solid Mechanics
Rainer Kress, Linear Integral Equations, 2nd Edition

Syllabus: The first half of the course will focus on finite difference methods for parabolic and hyperbolic PDE. I will describe von Neumann stability analysis, CFL conditions, the Lax-Richtmeyer equivalence theorem (consistency + stability = convergence), dissipation and dispersion. We will use these tools to analyze several popular schemes (Lax-Wendroff, Lax-Friedrichs, leapfrog, Crank-Nicolson, ADI, implicit-explicit methods, exponential time-differencing schemes.) The second half of the course will focus on finite volume methods for hyperbolic conservation laws, finite element methods for elliptic equations (Poisson, Lamé, Stokes), and boundary integral methods for the irrotational water wave.

Course Webpage: I will post handouts and assignments on B-Space. Please e-mail me if you do not have access to the B-Space page.

Grading: Grades will be based entirely on homework.

Homework: 8 assignments containing a mixture of theoretical questions and coding projects to implement the schemes we discuss in class. Any programming language is OK as long as you write the codes yourselves. (Matlab, C, C++, Fortran, Mathematica, Python, etc)