Computational Physics with Numerical Recipes

Physics 4480 / 7680, Astro 7690, Spring 2014
Monday, Wednesday, Friday 12:20-1:10, Rockefeller 104
Instructor: James Sethna, 5-5132,

This course teaches the theoretical underpinnings of the methods used by physicists and engineers in numerical computations. It follows closely the excellent text Numerical Recipes. We will cover roughly one chapter per week, with one exercise per chapter, and some associated group projects.

Scientific Topics (Numerical Recipes chapters)

  • Preliminaries
  • Solution of Linear Algebraic Equations
  • Interpolation and Extrapolation
  • Integration of Functions
  • Evaluation of Functions
  • Random Numbers
  • Root Finding and Nonlinear Sets of Equations
  • Minimization or Maximization of Functions
  • Eigensystems
  • Fast Fourier Transform
  • Fourier and Spectral Applications
  • Statistical Description of Data
  • Modeling of Data
  • Classification and Inference
  • Integration of Ordinary Differential Equations
  • Two-Point Boundary Value Problems
  • Partial Differential Equations
There are three main reasons that serious computational physicists and engineers should know this material, even though computational environments like Octave, Python, Matlab©, and Mathematica© provide "black-box" routines that will reliably and efficiently perform many of these tasks.
  1. The black boxes often fail just where the physics is most interesting. Knowing how they work is crucial for finding replacements.
  2. For computationally intensive tasks, one can often make use of (or design new) specialized routines that outperform the general-purpose routines.
  3. Amazingly often, researchers will use their knowledge of algorithms to apply the basic ideas in a completely new context.
We will deviate from the text in that we do not expect the students to program in C++ using the routines provided by Numerical Recipes. Rather, we encourage them to make use of the same tools they intend to use in their later research - either use one of the interactive computational environments (Python, Octave, Matlab©, Mathematica©, R, ...) or professionally written software libraries (GNU, Netlib, IMSL, NAG, ...). A substantial portion of the course will be devoted to group projects.


Numerical Recipes, the Art of Scientific Computing, Third Edition, William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery, Cambridge University Press, 2007.
Electronic copy available at Cornell.

Information and Links