Computational Physics—PHYS 7411

The use of computers in understanding physics has experienced tremendous growth over many years now, and it is an essential component in new physics discoveries. This course introduces solving physics problems with computers. We do not assume any previous programming experience and will use the popular programming language Python in order to focus on the content of computational physics programs and to make use of powerful numerical libraries that come packaged with Python. Students will develop their own computer programs to solve problems in a variety of areas of physics. The textbook for the course is Computational Physics, M. Newman (Createspace Independent Publishing, 2012, ISBN 1480145513).

Course Syllabus

Course hours: MW 8:00am-9:20am in 262 Nicholson Hall

Office hours: M 9:30-11:30am or by appointment in 447 Nicholson Hall

Homeworks

Homework 5, due by 3pm Mon. 13 April 2015

Homework 4, due by 3pm Mon. 30 March 2015, Files: pitch.txt, blur.txt

Homework 3, due by 3pm Fri. 13 March 2015

Homework 2, due by class Mon. 23 February 2015, Files: sunspots.txt, millikan.txt

Homework 1, due by class Wed. 4 February 2015

Lectures

Lecture 20 (01 Apr 2014)

  • Gauss-Seidel method
  • initial value problems
  • forward time centered space (FTCS) method
  • numerical stability analysis

Lecture 19 (30 Mar 2014)

  • boundary value problems
  • shooting method
  • partial differential equations
  • method of finite differences

Lecture 18 (25 Mar 2014)

  • leap frog method and energy conservation
  • Verlet method
  • modified midpoint method
  • Bulirsch-Stoer method

Lecture 17 (23 Mar 2014)

  • solving simultaneous ordinary differential equations
  • adaptive step size Runge-Kutta
  • leap frog method

Lecture 16 (18 Mar 2014)

  • fast Fourier transform
  • solving ordinary differential equations
  • Euler method
  • Runge-Kutta method

Lecture 15 (16 Mar 2014)

  • Fourier series and transforms
  • discrete Fourier transform
  • 2D discrete Fourier transform
  • discrete cosine transform

Lecture 14 (11 Mar 2014)

  • continuing with semidefinite programming
  • primal and dual
  • weak duality
  • examples
  • strong duality (Slater conditions)
  • Reading material: notes of John Watrous

Lecture 13 (9 Mar 2014)

  • secant method and rate of convergence
  • Newton's method for multiple variables
  • finding optima - golden ratio search
  • Gauss-Newton method
  • introduction to semidefinite programming

Lecture 12 (4 Mar 2014)

  • solving nonlinear equations
  • relaxation method (fixed-point iteration) and rate of convergence
  • Newton's method and rate of convergence

Lecture 11 (2 Mar 2014)

  • LU decomposition
  • calculating matrix inverses, solving banded matrices
  • computing eigenvalues and eigenvectors
  • QR decomposition and QR algorithm

Lecture 10 (25 Feb 2014)

  • higher order derivatives
  • interpolation
  • solving linear systems of equations with Gaussian elimination

Lecture 9 (23 Feb 2014)

  • choosing an integration method
  • computing integrals for infinite ranges
  • multiple integrals
  • numerical derivatives and errors

Lecture 8 (11 Feb 2014)

  • higher-order integration methods
  • Gaussian quadrature

Lecture 7 (9 Feb 2014)

  • adaptive integration
  • Romberg integration

Lecture 6 (4 Feb 2014)

Lecture 5 (2 Feb 2014)

Lecture 4 (28 Jan 2014)

Lecture 3 (26 Jan 2014)

Lecture 2 (23 Jan 2014)

Lecture 1 (21 Jan 2014)


Python Resources



Last modified: April 12, 2015.