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)