MAT 1062H: Introductory Numerical Methods for PDE

Professor: Mary Pugh
Contact information: mpugh@math.
Office hours: by appointment
Office location: room 3141, Earth Sciences Centre, 22 Russell Street (To find my office, enter the building on the Northwest corner of Huron and Russell. Get to the third floor. Walk as far south as you can. Now walk as far west as you can.)

Meeting time and place: The class meets on Tuesdays 11:10am-12pm and Thursdays 10:10am-12pm in MP 134. The first lecture will be on on Tuesday January 6 and the last on Thursday April 9.

Goal: We'll study numerical methods for solving partial differential equations that commonly arise in physics and engineering. We will pay special attention to how numerical methods should be designed in a way that respects the mathematical structure of the equation.
  • Parabolic PDE: boundary conditions, explicit and implicit discretizations, consistency, stability, and convergence, multi-dimensional problems
  • Elliptic PDE: variational formulations and finite element methods
  • Hyperbolic PDE: CFL stabilty condition, finite volume method, nonlinear conservation laws, shock capturing
  • Special topics (as time permits): spectral methods, pseudospectral methods

    Why we care: Here are some disasters which could have been averted if only someone had been paying closer attention to their numerical analysis. :-)

    Prerequisites: You should be familiar with the material that would be taught in a serious undergraduate PDE course. Sample programs will be provided in matlab. If you know matlab, great! If you don't, you're expected to be sufficiently comfortable with computers that you can learn matlab on the fly. Which isn't actually hard at all, unless you hate computers.
    If you have programmed before and if you've already taken a course in numerical analysis and numerical linear algebra then you might also want to audit or enroll in CSC 446/2310 "Computational Methods for PDE" which is meeting W1-3, F2-3 in BA B024. This course will have a different flavour than mine and so I recommend it as well.

    Recommended Reading: There are two books which provide background reading on numerical analysis, including numerical linear algebra, ODEs, finite difference methods, accuracy, and the like. Both are on reserve at the math/stat library on the 6th floor of Bahen. "An introduction to numerical analysis" by Kendall E. Atkinson is at the graduate level. "Elementary numerical analysis" by Kendall Atkinson and Weimin Han is at the undergraduate level.
    For the finite difference methods, I have asked that "Finite difference schemes and partial differential equations" by John C. Strikwerda be put on reserve at the engineering library.
    For the spectral methods, I have asked that "Spectral Methods: Fundamentals in Single Domains" by Claudio Canuto be put on reserve in the math/stat library.
    Note that both Strikwerda's and Canuto's books have some content available at google books.

    Programming: I will be using matlab in class and will provide matlab code for you to study and modify. You can program in whatever language you want. For your homeworks and exams, you will be asked for graphs and other output; I usually won't want to see your code.
    Matlab is proprietary. You can buy a student version of it in the textbook section of the UofT bookstore for $117 before taxes. If you're in the math department, you have access to matlab on the computer "sphere". Log in to coxeter and from there log in to sphere. If you aren't in the math department then you have to hope that matlab's installed on the machine you have access to.
    Octave is free software which has the matlab look and feel. You can install it on your own computer and the matlab code I provide should work just fine.
    SciPy is an open source software which is a python-based scientific computing environment. It's well worth looking into.

    Getting Started: If you're really new to computing then I encourage you to get started very soon. To get started, have a look at an old webpage of mine. You would like to look at the matlab primer as well as the links How to write up your homework and Show you can save and execute a file. Read "flash stick" wherever I refer to a floppy disk in the second page.


    Lecture Notes: Jan 6, 2009
    Lecture Notes: Jan 8, 2009
    Lecture Notes: Jan 13, 2009
    Homework 1. due on Tuesday January 27. Note: you're only being asked to hand in problems 2-4.
    Lecture Notes: Jan 15, 2009
    Here's the demo from class on Jan 15. It needs heat1.m, heat3.m, and heat_cn.m found here.
    Lecture Notes: Jan 20, 2009
    Lecture Notes: Jan 22, 2009
    Lecture Notes: Jan 27, 2009
    Homework 2. due on Thursday February 12.
    Here's the demo from class on Jan 29. It needs heat_eul_neu.m found here.
    Here's another demo. It needs buggy_heat_eul_neu.m found here.
    Here's another demo. It needs subopt_bcs_heat_eul_neu.m found here.
    Lecture Notes: Jan 29, 2009
    Some notes on the diffusion equation in higher dimensions, if you want them...
    Lecture Notes: Feb 3, 2009
    Lecture Notes: Feb 5, 2009
    You can find the in-class demos for the advection equation here.
    Convergence studies of schemes for initial data with different amounts of smoothness.
    Lecture Notes: Feb 10, 2009
    Homework 3. due on Thursday February 26.
    The take-home exam will be due at 11:10 on Tuesday March 3. I will email it to you by 11am on Monday March 2.
    Lecture Notes: Feb 12, 2009
    Lecture Notes: Feb 24, 2009
    Lecture Notes: Feb 26, 2009
    You can find the in-class demos from Feb 26 here.
    Homework 4. due on Tuesday March 17. Note: the first version I put up of this HW had a first problem which was identical to the last problem on HW3. It involved finding a modified equation. You don't need to do that problem.
    Lecture Notes: Mar 3, 2009. The proof of the Lax-Wendroff theorem is provided for those of you who're curious to read it. It's not required reading.
    Lecture Notes: Mar 5, 2009.
    You can find the in-class demos from March 5 here.
    Lecture Notes: Mar 10, 2009.
    Lecture Notes: Mar 12, 2009. Supplemental reading, if you want it.
    Lecture Notes: Mar 17, 2009.
    You can find the in-class demos from March 17 here.
    Lecture Notes: Mar 19, 2009.
    Homework 5. due on Thursday April 2. The script class_Mar17.m may be helpful for problem 2e.
    Lecture Notes: Mar 24, 2009.
    Lecture Notes: Mar 26, 2009.
    Lecture Notes: Mar 31, 2009.
    You can find the in-class demos from March 31 here.
    Lecture Notes: Apr 2, 2009.
    Lecture Notes: Apr 7, 2009.
    Homework 6. due on Monday April 20 along with your final exam.
    You can find the in-class demos from April 7 here.
    Lecture Notes: Apr 9, 2009.
    You can find the in-class demos from April 9 here.