Revised May 23, 2014
CS 371: Introduction to Computational Mathematics
Watch a video introduction to the course on YouTube.
General description
This course introduces computational
mathematics through an in-depth study of the properties
of numerical algorithms.
Logistics
Audience
- CS major students and students pursuing a CS minor
- Students interested in both mathematics and computer science
and interested in the computational aspects that one would encounter
when solving various mathematical or scientific problems
Normally available
Related courses
- Predecessors: (One of CS 116, 134, 136, 138, 145 taken fall 2010 or earlier, CS 146), MATH 235 or 245, 237, or 247; Not open to General Mathematics students
- Successors: CS 473, 475, 476
- Anti-requisites: CS 335, 337, 370, ECE 204
- Conflicts: AMATH 242/341, CM 271
CS 371 may be substituted for CS 370 in any degree plan or for prerequisite purposes
For official details, see the UW calendar.
Software/hardware used
Typical reference(s)
- Numerical Analysis, 9th ed., R. Burden and J. Faires, Brooks Cole
- Course notes
Required preparation
At the start of the course, students should be able to
- Program in a high-procedural programming language and use control instructions, such as loops and conditional statements,
basic datatypes, and simple data structures, such as arrays
-
Use limits and derivatives, Taylor series, curves,
max/min of multivariate functions, partial derivatives, other basic
concepts encountered in calculus, and multi-dimensional integration
- Use matrix operations, inverse, products, etc.,
Gaussian elimination, eigenvalues, and eigenvectors
Learning objectives
- Explain the principles of floating point number systems and the concepts
of chopping, rounding, machine precision, and error of floating point
arithmetic
- Analyze stability and conditioning of numerical problems
- Solve nonlinear equations using iterative methods and
analyze convergence of various methods
- Use MATLAB built-in functions and graphing capabilities of
1D and 2D data
- Implement efficient code using vectorization
- Use the principles of polynomial interpolation to derive and apply
splines
- Use numerical methods to integrate one dimensional
functions and analyze the efficiency of these methods
- Give examples of the concept of data representation using different basis
functions, Fourier basis, and the FFT algorithm
- Use alternate representations in applications, such as
tomographic reconstruction and filtering
- Solve linear equations in a floating point environment
taking into consideration error propagation and measures of
conditioning
- Explain the computational and mathematical
issues involved in a large scale linear algebra problem
(e.g., sparse matrix solving)
Typical syllabus
Floating point number systems (3 hours)
- Floating point numbers, propagation of round off,
stability of recursions
Polynomial interpolation (4 hours)
-
Interpolation: Lagrange and cubic spline
Nonlinear equations (4 hours)
-
Fixed point, Newton iteration
Analysis of convergence, rate of convergence
Numerical linear algebra (11 hours)
-
LU decomposition,
pivoting, condition
number, sparse matrices, iterative methods, analysis
of convergence of iterative methods, power method
for eigenvectors, Google Page Rank, analysis
of convergence of the power method, sparse
matrices and graphs
Discrete Fourier analysis (11 hours)
-
DFT pair, sampling theorem,
aliasing, FFT algorithm, slice theorem, Radon Transformation, filtered backprojection for
CT image reconstruction
Numerical integration (3 hours)
-
Midpoint, trapezoidal, Simpson's
rule, error analysis, Gaussian quadrature, Monte Carlo