Physics 506 - Numerical Methods - autumn 2017

  Instructor: Laurence G. Yaffe [PAB 404,]
  Office Hours: by arrangement
  TA Office Hours: by arrangement
  Class: 1:00-2:20pm TTh, PAA 114
  Class webpages:


This offering of Physics 506 will focus on computational techniques and aspects of numerical analysis which are broadly useful in theoretical physics. (Analysis of experimental data will not be a primary topic.) Function approximation, interpolation, integration and differentiation, and numerical solution of differential equations (both ordinary and partial) will be discussed at length, with an emphasis on (pseudo)spectral methods. A recurring theme will be recognizing and coping with sources of trouble: precision loss, singularities, instabilities, etc.

Intended audience:

The course is designed for graduate students in physics and related fields. Problems used as examples will often be drawn from quantum and statistical mechanics; a solid (graduate level) understanding of these areas will be assumed. So will facility with linear algebra, basic differential equations (Sturm-Liouville theory, method of Frobenius), basic complex analysis (domains of analyticity, types of singularities), and Fourier analysis. Some prior programming experience in both procedural languages (e.g., C/C++) and Mathematica will be helpful, but a variety of programming backgrounds is expected.

Course structure:

Class time will be a mix of lecture/discussion and small group in-class problem solving. Homework, typically biweekly, will be assigned, but a major part of the class will be an individual computational project, to be selected and defined early in the quarter, carried out during the quarter, presented to the class in the final week(s), and written up.

Course goals:

Gain substantially greater experience and expertise with numerical methods which are widely used in physics. Understand how to recognize, and counter, typical problems encountered in computational physics. Significantly improve facility with one or more computer language: Mathematica, Matlab, Python, C/C++. Successfully complete an interesting, non-trivial computational project. Prepare and present a clear, concise and informative summary of the project and its results, both orally and in writing.

Approximate syllabus:

Basics: precision vs. accuracy, precision loss, computational complexity
Interpolation, approximation, integration & differentiation
Spectral methods
Root finding & minimization
Ordinary differential equations: initial value & boundary value problems
Partial differential equations: elliptic vs. hyperbolic
Stochastic methods


Assignment #1 (Due Wed October 11). Mathematica solutions.
In-class quasinormal mode exercise (Oct 19). Mathematica solutions.
Assignment #2 (Due Mon Oct 23).
Assignment #3 (Due Wed Nov 15).

Project timeline:
    Sep 28-Oct 5:project formulation
Oct 9:approved project proposal deadline
Oct 23:progress report (I)
Nov 8-9:presentation scheduling
Nov 15:progress report (II)
Nov 28-Dec 14:presentations (revised schedule):
Ding 2:00pm Tue Nov 28
Lev 1:00pm Thu Nov 30
Bryce 1:20pm Thu Nov 30
Tyler 1:40pm Thu Nov 30
Isaac 1:20pm Tue Dec 12PAB101
Sam 1:40pm Tue Dec 12PAB101
Ting 2:00pm Tue Dec 12PAB101
Andrew 2:20pm Tue Dec 12PAB101
Bhavik 1:00pm Thu Dec 14PAB101
Kyle 1:20pm Thu Dec 14PAB101
Dake 1:40pm Thu Dec 14PAB101
Lukas 2:00pm Thu Dec 14PAB101
Sifang? 2:20pm Thu Dec 14PAB101
Dec 14:final write-up deadline

Project suggestions:Requested by:
    Lyapunov spectrum: stadium     Wihan
Quantum density of states: 1D quartic well Ding
Double well: ground state splitting Alex
Anharmonic oscillator analyticity Sifang
Lyapunov spectrum: x2y2 potential Lukas
Particle in stadium Isaac
Quantum density of states: x2y2 potential Tyler
Quasinormal modes: charged black brane Andrew
Wannier-Stark resonances Sam
Quantum time evolution Bryce
Infalling geodesic congruence Dake
Two dimensional turbulence Lev
Helium in any dimension Ting
Squeezed baryons Kyle
Double-filled quantum dot Bhavik

Recommended books and papers:
    J. P. Boyd, Chebyshev and Fourier Spectral Methods
R. W. Hamming, Numerical Methods for Scientists and Engineers
M. Hjorth-Jensen, Computational Physics
J.-P. Berrut & L. Trefethen, Barycentric Lagrange interpolation

Mathematica packages:
    Spectral approximation modules: SpectralCode.nb, loadable package: SpectralCode.m
    Spectral approximation modules (version 2): SpectralCode2.nb, loadable package: SpectralCode2.m
    Riemannian geometry and tensor calculus: EDCRGTCcode.m, documentation: RGTC.nb

Other resources:
    Tutorials: Mathematica, Matlab, Python, Python
UW Licensing: Mathematica, Matlab
Numerical computing libraries: GNU Scientific Library, Wikipedia listing