-
Department Info
-
-
Admissions
-
-
Academics
-
-
-
Research
-
-
-
Main navigation | Main content
This course offers a practical introduction to numerical computing. The course is designed to be of interest to students in CS, Mathematics and other science and engineering disciplines. It is required of CSci majors in CSE (those pursuing a B.S. degree). The goal is to teach the principles of numerical analysis, especially the concepts and tools involving in modeling real continuous mathematical or engineering problems on the digital computer, and the effects of using floating point arithmetic.
CSCI 2031. Introduction to Numerical Computing. Introduction to numerical computing for CSci, mathematics, and science/engineering students. Uses Mathematica or Matlab to cover numerical error, root finding, systems of equations, interpolation, numerical differentiation and integration, least squares, and differential equations.
| Week 1: |
Introduction Algorithms Errors Error propagation |
|---|---|
| Week 2: |
Floating point computation Floating-point numbers Basic operations (floating-point arithmetic) Numerical instabilities |
| Weeks 3-4: |
Rootfinding (single non-linear equation) Roots of nonlinear functions Functional iteration Newton's method Bisection method Secant method |
| Weeks 5-7: |
Linear systems Matrices Gaussian elimination (pivoting & scaling) Iterative improvement Norms & sensitivity |
| Weeks 8-9: |
Interpolation Taylor series Lagrange interpolation (error, Runge's phenomenon, Chebyshev nodes) Piecewise polynomial interpolation (splines (+)) |
| Weeks 10-11: |
Numerical differentiation and integration Numerical differentiation Simple quadrature rules Error estimates |
| Weeks 12-13: |
Ordinary differential equations (initial value problems) A single ODE Euler's method Runge-Kutta methods Least-Squares approximation |
| Week 14: |
Normal equations Trigonometric interpolation |
This is the only class many students will take that discusses floating point arithmetic and the issues involved in modeling continuous mathematics on a discrete digital computer. These issues arise in the computer modeling of the real world environment, whether for a video game or an engineering problem.
Students will typically take this course in the second semester of their second year or the semester immediately following that, depending on when they have taken the math prerequisites. Students transferring in from engineering or math programs may have already taken an equivalent class. Students in some science or engineering majors here at the U may also take this class.
Calculus I and II, plus a course in basic linear algebra and differential equations. Since modeling of mathematical problems is a core part of this course, students should have already been exposed to the basic concepts of calculus, systems of linear equations, and elementary ordinary differential equations. Student will normally be expected to have some programming experience, but no specific prerequisite is listed because it may be taken by non-CSci students. Part of the class will be to teach students the use of higher level interactive computing environments such as Mathematica, Maple, and/or Matlab.
This class is a prerequisite for our advanced numerical analysis (5302, 5304), pattern recognition (5521), and robotics (5551) classes. As such, it covers many fundamental tools and concepts used in the those classes.
4 credits, 3 large class + 1 recitation hour per week. Recitation can be used for problem solving and review, or more in-depth discussion of topics and examples given in the large class. Since one of the emphases of the class is on developing students' skills with higher level interactive computing environments, the practice given in recitation will be highly valuable for many students.
“Elementary Numerical Computing with Mathematica” by R. Skeel and J. Keiper, or “Numerical Methods” by Cheney and Kincaid.
Upon successful completion of the course students should have the following skills and proficiencies: