Numerical Computation, CMSC 655
Spring 1999 Course Syllabus (DRAFT)
Goals
The goal of this course is to give students an introduction to
numeric and algorithmic techniques used for the solution of a broad
range of mathematical problems, with an emphasis on computational
issues and parallel processing. In addition, students will become
familiar with one or more array-oriented numeric programming
environments: Matlab, Scilab, or some similar package.
Relevance
For computer science students, there is intrinsic interest in the
particular blend of mathematical, algorithmic, architectural, and
software-engineering that makes up numerical computation. In
addition, familiarity with numeric methods can open up new realms of
interesting applications in the area of scientific computation, and
much of the material covered here is directly relevant to computer
graphics.
For students in electrical engineering, the significance of
numerical methods goes without saying. Issues of architecture and
parallelism become significant when, as is very often the case,
realistic analysis, modeling, and simulation are limited by the
speed of computation.
Prerequisites
To quote the text's author, "the prerequisites for the course and
the book have been kept to a minimum: basic familiarity with linear
algebra, multivariate calculus, and a smattering of differential
equations. No prior familiarity with numerical methods is assumed.
The book adopts a fairly sophisticated perspective, however, and the
course moves at a rather rapid pace in order to cover all of the
material, so a reasonable level of maturity on the part of the
student (or reader) is advisable."
In particular, note that CMSC 455, the corresponding undergraduate
course in numerical computation, is not a formal
prerequisite to 655 (though it certainly would not hurt), and this
will be taken into account in planning the course. Undergraduate
architecture, CMSC 411, is a formal prerequisite, as architecture
can be critical to performance. Some familiarity with the methods
of algorithmic analysis is desirable, and while not a formal
prerequisite, the undergraduate algorithms course, CMSC 441 or
equivalent, is recommended.
Students with varied backgrounds who are interested in CMSC 655,
and in particular EE students without the CMSC prerequisites, are
encouraged to discuss their particular situation with the
instructor.
Outline
The course will follow the organization of the text fairly closely.
This is the first time this text has been used in CSEE, and there is
considerable room for flexibility with regards to pacing and the
material covered, in response to student feedback.
The text's introductory chapter will be supplemented with a brief
survey of sequential and parallel architecture, and an introduction
to Matlab, after which issues of performance and potential
parallelization will be integrated with the remaining material. The
use of a relatively high-level language such as Matlab makes it
possible to express numeric algorithms in a natural way; in
addition, it is useful for for prototyping lower-level parallel
code, and is amenable to automatic parallelization.
Tentatively, the course outline is as follows.
- Introduction
- Approximations
- Computer arithmetic
- Computer architecutre
- Mathematical software
- Systems of Linear Equations
- Solving linear systems
- Norms and condition numbers
- Accuracy of solutions
- Special linear systems
- Iterative methods
- Linear Least Squares
- Normal equations
- Orthogonalization methods
- Eigenvalues and Singular Values
- Methods for computing eigenvalues
- Generalized eigenvalue problems
- Singular values
- Nonlinear Equations
- Nonlinear equations in one dimension
- Systems of nonlinear equations
- Optimization
- One-dimensional optimization
- Multidimensional unconstrained optimization
- Nonlinear least squares
- Linear programming
- Interpolation
- Polynomial interpolation
- Piecewise polynomial methods
- Numerical Integration and Differentiation
- Various quadrature methods
- Finite difference approximations
- Symbolic differentiation
As time permits, selected topics from the following areas will also
be covered.
- Initial Value Problems for Ordinary Differential Equations
- Boundary Value Problems for Ordinary Differential Equations
- Partial Differential Equations
- Fast Fourier Transform
- Random Numbers and Stochastic Simulation
Grading
Exercises will be assigned regularly, and there will be several
small- to moderate-sized projects; in addition, some of the
"exercises" may be short projects. The midterm exam is tentatively
set for the end of the chapter on non-linear equations. The final
exam will cover the remaining material and will not be explicitly
cumulative, though the material in the later chapters may not be
entirely independent from that in the earlier.
Points are given for projects, exams, and homework, with your final
grade depending on the total number of points you have accumulated.
Tentatively, points will be allocated as follows.
exercises 50 points
projects 100 points
midterm exam 100 points
final exam 100 points
----------------- -----------
Total 350 points
Further Information
Course material, including class announcements, project and
homework assignments, a list of due dates, and possibly a partial
set of lecture notes, will be available online at
http://umbc.edu/~motteler/teaching.
Selected References
- An Introduction to Numerical Analysis, Kendall E. Atkinson,
second edition, Wiley, 1989. This is a standard text and is
used by the UMBC Math Department for their graduate course in
numeric methods.
- Introduction to Numerical Analysis, J. Stoer, R. Bulirsch,
R. Bartels, W. Gautschi, C. Witzgall, second edition, Springer
Verlag, 1992. A comprehensive reference; the first edition was
the text used when I took graduate numeric analysis, under the
patient tutelage of Walter Gautschi, many years ago at Purdue.
- Linear Algebra and its Applications, Gilbert Strang, second
edition, Academic Press, 1988. A comprehensive, practical, and
accessible introduction to linear algebra.
- Introduction to Algorithms, T. H. Cormen, C. E. Leiserson,
R. L. Rivest, MgGraw-Hill, 1990. This standard algorithms text
has useful sections on matrix computation and the FFT.
- Highly Parallel Computing, G. S. Almasi and A. Gottlieb, second
edition, Benjamin/Cummings, 1994. This is the text I have used
in teaching the graduate course in Parallel and Distributed
Processing, CMSC 683. (The web page for this course may be
found at
http://umbc.edu/~motteler/teaching/.)