Math 625: Spring 2002
Computational Mathematics and C Programming
Course information
| Course: | Math 625/0101: Computational Mathematics and C Programming |
| Time/Place: | MW 2:00pm-3:15pm, MP 401 |
| Instructor: | Dr. Rouben Rostamian |
| Office: | MP 417 |
| Phone: | 410-455-2458 |
| Email: | rostamian@umbc.edu |
| Office hours: | MW 3:15-4:00 and by appointment |
Course Description
This is a hands-on computational mathematics course with emphasis on
programming in C. The goal is to quickly impart the necessary
algorithmic and programming skills to enable the students to build
moderate- to large-scale application programs and gain a mastery of the
C programming language in the context of scientific computing.
Previous experience in programming is not required; a substantial
part of the course will consists of introduction to C with special
emphasis on common idioms used in scientific computing.
Through the semester the students will gradually build their own
computing library and will successively apply it to solve increasingly
complex computational projects.
Prerequisites:
Math 221 (linear algebra),
Math 251 (multivariable calculus)
Syllabus
- The Gauss-Jordan algorithm for solving
system of equations and LU decomposition
- Haar wavelets applied to the processing and compression
of grayscale and color images
- Solving statically determinate 2D trusses via the statics
equations of equilibrium
- The Nelder-Mead downhill simplex algorithm for finding the
minima of a function f : Rn -> R
- Solving statically indeterminate 2D trusses via minimizing energy
- The Gauss quadrature method for numerical integration, with an
algorithm to generate Legendre polynomials, quadrature points and weights
on the fly
- A generic Finite Element Solver for solving elliptic
partial differential equations on irregular 2D domains with mixed
Dirichlet and Neumann boundary conditions
Textbook
There is no textbook which covers the selection of topics planned for
this course. I will provide plenty of reading material from various
sources throughout the semester. Students are expected to take detailed
notes.
Required reading:
Kernighan and Ritchie, The C Programming Language
Grading method
I will collect and grade the weekly programming assignments.
Your course grade will be based on your cumulative performance
on these assignments.
Sample image filtered with Haar wavelets
The original 256x256 image was transformed via Haar wavelets.
Then the least significant coefficients were dropped and the
image was reconstructed with the remaining coefficients. The
relative L2 errors of truncation in the three
reconstructed images are 2, 3, and 6 percent. The information
from the original image retained are 10%, 5%, and 1%, respectively.
![[vivian000.jpg]](../2000-09-math700/vivian000.jpg) Original image |
![[vivian000.jpg]](../2000-09-math700/vivian020.jpg) ...with 10% of the original information |
![[vivian000.jpg]](../2000-09-math700/vivian030.jpg) ...with 5% of the original information |
![[vivian000.jpg]](../2000-09-math700/vivian060.jpg) ...with 1% of the original information |
The Official UMBC Honors Code
By enrolling in this course, each student assumes the responsibilities
of an active participant in UMBC's scholarly community in which
everyone's academic work and behavior are held to the highest standards
of honesty. Cheating, fabrication, plagiarism, and helping others to
commit these acts are all forms of academic dishonesty, and they are
wrong. Academic misconduct could result in disciplinary action that
may include, but is not limited to, suspension or dismissal.
To read the full Student Academic Conduct Policy, consult the UMBC
Student Handbook, the Faculty Handbook, or the UMBC Policies section
of the UMBC Directory.