Numerical Methods (cspp58001)

Spring 2009




Professor: Andrew Siegel
Location : Reyerson 277
Time : Mon 5:30-8:30
Office: Ry175-B
Email:asiegel@cs.uchicago.edu
Office Hours: Tue 3:30-5:30 and by appointment

TA: Dr. Dinesh Kaushik
email: kaushik@mcs.anl.gov
Office Hours:

Listhost: http://mailman.cs.uchicago.edu/mailman/listinfo/cspp58001

Course Description: This is a practical programming course focused on the basic theory and efficient implementation of a broad sampling of common numerical methods. Each class of numerical methods will be introduced conceptually followed by detailed exercises focused on both prototyping them (using matlab) and programming them efficiently on modern (serial) architectures. The ideal student in this course would have a strong interest in the use of computer modeling as predictive tool in a range of discplines -- for example risk management, optimized engineering design, safety analysis, etc. The numerical methods studied in this course underlie the modeling and simulation of a huge range of physical and social phenomena, and are being put to increasing use in a range of industrial applications. After successfully completing this course, a student should have the necessary foundation to quickly gain expertise in any application-specific area of computer modeling.

There is no formal pre-requisite for the course, though a familiarity with or strong interest in basic concepts of calculus and linear algebra will be helpful.

Course Format: Combination of instructor lecture, student presentations, and group discussion.

Grading: Bi-weekly homework assignments only. No exams.

Getting Help: When possible, all technical questions should be discussed over the course listhost (see link above). Otherwise, please consult TA first and then professor if further assistance is required.

Suggested texts:


Required Computing Resources:
Matlab (available on CS cluster)
Any C/C++, fortran, or Java compiler


Overview of main topics:
Quick Overview of Matlab Programming Language
Optimized serial programming strategies on modern architectures -- efficient cache use, pipelining, vectorization
Floating Point Representation, round-off error, etc.
Solution of non-linear equation f(x) = 0: fixed-point iteration, Newton's method, etc.
Systems of linear equations Ax = b: iterative and direct methods, condition number, eigenvalue problems, etc.
FFTs and Convolutions, curve fitting, splines, etc.
Numerical integration
Timestepping methods for ODEs
Numerical methods for PDEs

Lesson 1 (including hw1.txt)
Lesson 2
Lesson 3 (including hw2.txt)
Lesson 4
Lesson 5 (including hw3.txt)
Lesson 6
Lesson 7 (including hw4.txt)
Lesson 8 (taught by Dr. Kaushik)
Lesson 9 (including hw5.txt)