Introductory Numerical Methods for PDE
Professor: Mary Pugh
Contact information: mpugh@math. utoronto.ca
Office hours: by appointment
Office location: Bahen 6268
Meeting time and place:
The class meets on Mondays 12:10am-1:30pm and Wednesdays
2:30am-3:50pm in BA 2179. The first lecture will be on
on Monday January 11 and the last on Wednesday April 6.
Auditing vs Enrolling
You're welcome to audit the course; if the course is on the
verge of being cancelled due to low enrolment then I'll
ask some of you to consider enrolling.
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.
explicit and implicit discretizations,
consistency, stability, and convergence,
variational formulations and finite element methods
CFL stabilty condition, finite volume method,
nonlinear conservation laws, shock capturing
Special topics (as time permits):
pseudospectral methods, Chebyshev polynomials
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.
Recommended Reading: Two nice books which provide
background reading on numerical analysis, including numerical linear
algebra, ODEs, finite difference methods, accuracy, and the like
"An introduction to numerical analysis" by Kendall E. Atkinson (grad
and "Elementary numerical analysis" by Kendall
Atkinson and Weimin Han (undergrad level).
Five numerical PDE books that are especially useful are
"Numerical methods for evolutionary differential equations" by
Uri M. Ascher,
"Finite difference schemes and partial differential
equations" by John C. Strikwerda,
"Numerical solution of partial differential equations, with exercises and
worked solutions" by Gordon D.
"Numerical analysis of spectral methods : theory and applications" by
David Gottlieb and Steven A. Orszag,
and "Numerical methods for conservation laws".
I have a request in to put all seven books on 24-hour reserve.
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 for
much less than I have to pay for it; around $120.
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.
There are various free
matlab clones that you can install on your computer
if you wish.
Crash courses on matlab
Kermit Sigmon wrote a very nice
Here's a pdf file of the
Matlab Primer which you can view but will come out gibberish
if you print it.
That primer is short and sweet. Matworks now has a free
primer too --- here's
the link to it. It's the more modern one
and so give it a try.
Christina C. Christara and Winky Wai's matlab
Cleve Moler's "Introduction to MATLAB"
chapter from his book
Numerical Computing with MATLAB. Note that you can get the
book as free pdf files on a chapter-by-chapter basis.
How about some python? An open-source software that's well
worth looking into is
a python-based scientific computing environment.
Our physics department has a lovely
python wiki which includes
lessons on how to use python as well as an
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
of mine. You would like to look at the matlab primer as well as the links
"how to write up your homework" and
"how to save and execute a file". Read "flash stick" wherever I refer to a floppy disk in the second page.
Here is your first homework assignment. Due by 4pm on Friday January 29.
the files that I used to approximate the Laplacian with various different boundary conditions.
Here are the two scripts I used towards the end of class on January 27
demonstrating numerical instability for Forward Euler time-stepping:
They refer to the heat equation codes you can find
here. Also, to compute the power spectrum, you'll need
Here is your second homework assignment. Due by 5pm on Monday February 22.
Here are the two scripts I used in class on February 10
demonstrating numerical convergence for Forward Euler and
They refer to the heat equation codes you can find
here. If the Forward Euler script takes too long to run, comment
out the one or two most highly resolved runs and comment out
subsequent references to those solutions and errors in the script..
Here are the two scripts I used in class on February 22
demonstrating four schemes for the advection equation:
class_Feb_22a.m. They require the scripts
Here are the three scripts I used in class on March 23
demonstrating aliasing error, power spectra, and spectral
They require the scripts
Here is your final homework assignment. Due by 5pm on Friday April 15.