Content: Computation is essential for physicists,
both theoretician and experimentalist, both in basic research and in
applications.
This course will emphasize selected aspects of the computational approach
to obtaining answers to questions. Addressing a computational problem may
not be simple. One must consider whether the
question is solvable by computation, and if so, what are the hardware, software,
and psychological barriers? With some attention to such questions during
the quarter, this course will focus on studying several
generic problems and the numerical methods used to solve them, and
learning not so much any specific algorithms in great detail but rather what
to work toward, and especially what pitfalls may arise due to the digital (finite
precision and discretization) implementation of an algorithm, or due to other
surprises. Several beginning problems will be simple. The last half of the course
will require work on a real computational problem, involving algorithmic choices,
substantial coding debugging, and checking for correctness of the code as well as
interpretation of results ("the physics"). At least two choices of topic will
be provided for this "big problem."
Prerequisites: Strong mathematical background (calculus, analysis, differential equations, statistics) and basic physics and quantum mechanics, and knowledge of a programming language suitable for numerical computation: Fortran, C++, C, ... This is not a programming course; it requires the knowledge of a programming language beyond Mathematica or Matlab, but coding is not the objective.
Recommended Reading:
Numerical Recipes: The Art of
Scientific Computing (Fortran Version), by W. H. Press,
B. P. Flannery, S. A. Teukolsky, and W. T. Vetterling.
Older versions are still available
online
for free.
Real Computing Made Real
by Forman S. Acton (Princeton University Press, 1996)
Computational Physics by Steve E. Koonin