COMPUTATIONAL PHYSICS
Tuesdays and Thursdays 2:00-3:15 (Meyer 433)

Instructor: Roman Scoccimarro


This is a *physics* course, in which we will use computational techniques to solve problems in physics.
Analytic approximation techniques will also be an important part of the course.
There will be no exams, grades will be based on homework.
You will need to (or learn how to) program (e.g. C, Fortran, Mathematica, MATLAB), use LaTeX and plotting software.

Homework


Please return a brief summary of your work (including figures) as a printout generated by LaTeX (see below for a template).

Hwk1[Feb10], Hwk2[Mar22], Hwk3[May03],

Lecture Notes


Lec01, Lec02, Lec03, Lec04, Lec05, Lec06, Lec07, Lec08, Lec09, Lec10, Lec11, Lec12, Lec13,
Lec14, Lec15, Lec16, Lec17, Lec18, Lec19, Lec20, Lec21, Lec22, Lec23, Lec24, Lec25, Lec26,
Lec27

Preparing these notes I found (apart from the textbooks mentioned below) the material here useful.

Textbooks


There is no formal textbook that I will follow, although Numerical Recipes can be very useful.
The following book, more on the mathematical side, is highly recommended,

  • A. Iserles, A First Course in the Numerical Analysis of Differential Equations, 1996, Cambridge University Press

    Other general books that you may want to check are,

  • A.L. Garcia, Numerical Methods for Physics, 2000, Prentice Hall
  • R.H. Landau & M.J.Paez, Computational Physics, 1997, Wiley
  • T. Pang, An Introduction to Computational Physics, 1997, Cambridge University Press

    For analytic methods, see e.g.

  • B. Kusse & E. Westwig, Mathematical Physics, 1998, John Wiley & Sons
  • G. Arfken, Mathematical Methods for Physicists, 1985, Academic Press
  • C.M. Bender & S.A. Orzag, Advanced Mathematical Methods for Scientists and Engineers, 1978, McGraw Hill


    LaTeX Help


    You can find a sample latex file to present your homework here.
    There are many tutorials on LaTeX on the web, see e.g.

  • NASA help
  • LaTeX Primer


    C, Fortran, Mathematica, MATLAB Help


    There is a lot of useful material on the web, see e.g.

  • C help
  • Fortran Help
  • Mathematica Help
  • MATLAB Help


    Plotting Software


    You can use Mathematica or MATLAB (see above) or the freely available GNUPLOT, see

  • gnuplot website

    Or if you want a graphics subroutine callable from C or Fortran, see e.g.

  • PGPLOT


    Course Outline


  • Basics of Numerics (2 weeks)
    - Numerical Math: Roundoff error, representation of numbers, etc
    - Interpolations and Approximations
    - Computing Derivatives and Integrals
    - Random Number Generators

  • Ordinary Differential Equations (2 weeks)
    - Basic Methods: Euler, Runge-Kutta
    - Implicit Methods
    - Stiff ODE's. Stability
    - Applications: Resonances in the Solar System, Planetary Motion in GR

  • Spectral Methods (3 weeks)
    - Random Gaussian Fields, Power Spectrum, Correlation Functions, Cumulants
    - Fast Fourier Transform
    - Windowed Fourier Transforms, Wavelets
    - Applications: Spatial (or Temporal) Distributions

  • Partial Differential Equations (3 weeks)
    - Finite Differences.
    - Grid Methods: FFT, Relaxation, Multigrid
    - Lax, Lax-Wendroff, Staggered Leapfrog Methods
    - Method of Characteristics
    - Applications: Water Waves, KdV Solitons, Traffic Problems

  • Some Type of Monte Carlo TBD (3 weeks)


  • High-Performance Computing and Parallelism
    - How Computers Work
    - Memory, Cache, Compilers, Profiling, Parallelism