### Suggested books

*The Feynman Lectures on Physics*. These notes by Richard Feynman cover much of basic physics in a way intended for smart people who want to understand things. It is organized into Lectures on different topics. The lectures on heat flow describe the heat equation. The lectures on wave propagation describe the wave equation. The lectures on electro-statics describe the Laplace equation.

*Numerical Methocs*by Dahlquist and Björk. This book is out of date but has the most clear descriptions of the basic operations anywhere. The second best source is Principles of Scientific Computing, course notes by Bindel and Goodman.

### Lecture notes and other files

- Part 1, Runge Kutta methods
- Code to apply forward Euler to the Lorenz system
- The pdf file (graph) you should get by running ODE_fE_Lorenz.py
- Code to apply a two stage Runge Kutta method to the Lorenz system
- The pdf file (graph) you should get by running ODE_trap_Lorenz.py
- A zip file with the three Python modules that simulate the Fermi Pasta Ulam lattice
- Three movies made using the Fermi Pasta Ulam lattice solver
- Large time step, the simulation blows up before the end
- Medium time step, the simulation does not blow up but is not accurate either
- Small time step, accurate simulation but slow
- Code for the longer time Lorenz simulation with chaos and no accuracy
- The plot you should get by running LorenzChaos.py
- Part 2, discrete Fourier analysis, time dependent fields

- Main program in plain Python
- Python program to apply Cython
- The Python module to compile using Cython