Numerical Analysis (CS 450) Spring 2025
What | Where |
---|---|
Time/place | Tue/Thu 11:00am--12:15pm 1404 Siebel Center for Computer Science / Catalog |
Class recordings | Illinois Mediaspace |
Discussion | Discuss » |
Administrative Help | Help Desk (click "Message" on the top right) |
Chat | Chat » |
Calendar | View » |
Office Hours
Office hours will be held in the tutoring space in the basement of Seibel
- Monday
- 4:00-5:00 PM Ruining Zhao
- Tuesday
- 12:30-1:30 PM Paul Fischer
- Wednesday
- 2:00-4:00 PM Jonathan Wang
- 7:00-8:00 PM Hansheng (Hansen) Liu (Online, Zoom Meeting ID: 837 0768 1158 Passcode: 11450)
- Thursday
- 12:30-1:30 PM Paul Fischer
- 2:00-3:00 PM Hansheng (Hansen) Liu
- Friday
- 2:00-3:00 PM Ruining Zhao
Quizzes
- Quiz for lecture 02
- Quiz for lecture 03
- Quiz for lecture 04
- Quiz for lecture 05
- Quiz for lecture 06
- Quiz for lecture 07
Homework
- Homework set 1 (Due January 29)
- Homework set 2 (Due February 5)
Exams
Please find information on our upcoming exams below. Reserve your time slots in the testing facility early after the posted self-reserve time--otherwise your preferred times may no longer be available.
- Exam 1 duration: 50 min cbtf_start: 02-11 cbtf_end: 02-13 23:59:00 (CST) cbtf_self_reserve: 01-30 (CST)
- Exam 2 duration: 50 min cbtf_start: 03-04 cbtf_end: 03-06 23:59:00 (CST) cbtf_self_reserve: 02-20 (CST)
- Exam 3 duration: 50 min cbtf_start: 04-01 cbtf_end: 04-03 23:59:00 (CDT) cbtf_self_reserve: 03-13 (CDT)
- Exam 4 duration: 50 min cbtf_start: 04-22 cbtf_end: 04-24 23:59:00 (CDT) cbtf_self_reserve: 04-10 (CDT)
- Final duration: 1h 50m cbtf_start: 05-08 cbtf_end: 05-15 23:59:00 (CDT) cbtf_self_reserve: 03-14 (CDT)
Course Outline
-
Introduction to Scientific Computing
- About the Class
- Errors, Conditioning, Accuracy, Stability
- Floating Point
- Demo: Backward Stability by Example
- Demo: Catastrophic Cancellation
- Demo: Conditioning of Evaluating tan
- Demo: Density of Floating Point Numbers
- Demo: Floating Point and the Series for the Exponential Function
- Demo: Floating Point vs Program Logic
- Demo: Floating point and the Harmonic Series
- Demo: Picking apart a floating point number
- Demo: Truncation vs Rounding
- Demo: Vector Norms
- Demo: Writing Testable Numerics Code
-
Systems of Linear Equations
- Theory: Conditioning
- Methods to Solve Systems
- LU: Application and Implementation
- Demo: BLAS Level 2 vs Level 3
- Demo: Coding back-substitution
- Demo: Complexity of Mat-Mat multiplication and LU
- Demo: Condition number visualized
- Demo: Conditioning of 2x2 Matrices
- Demo: LU Factorization with Partial Pivoting
- Demo: LU Factorization
- Demo: Matrix norms
- Demo: Sherman-Morrison
- Demo: Vanilla Gaussian Elimination
-
Linear Least Squares
- Introduction
- Sensitivity and Conditioning
- Solving Least Squares
- Demo: 3x3 Givens demo
- Demo: 3x3 Householder demo
- Demo: Gram-Schmidt and Modified Gram-Schmidt
- Demo: Gram-Schmidt--The Movie
- Demo: Householder in 3D
- Demo: Image compression
- Demo: Interactive Polynomial Fit
- Demo: Issues with the normal equations
- Demo: Keeping track of coefficients in Gram-Schmidt
- Demo: Normal equations vs Pseudoinverse
- Demo: Polynomial fitting with the normal equations
- Demo: Relative cost of matrix factorizations
-
Eigenvalue Problems
- Properties and Transformations
- Sensitivity
- Computing Eigenvalues
- Krylov Space Methods
- Demo: Arnoldi Iteration
- Demo: Bauer-Fike Eigenvalue Sensitivity Bound
- Demo: Computing the SVD
- Demo: Exploring the Numerical Range
- Demo: Householder Similarity Transforms
- Demo: Motivating Power Iteration
- Demo: Orthogonal Iteration
- Demo: Power Iteration and its Variants
- Demo: QR Iteration
- Demo: Rounding in characteristic polynomial using SymPy
-
Nonlinear Equations
- Introduction
- Iterative Procedures
- Methods in One Dimension
- Methods in $n$ Dimensions (``Systems of Equations'')
- Demo: Bisection Method
- Demo: Convergence of Newton's Method
- Demo: Convergence of the Secant Method
- Demo: Fixed point iteration
- Demo: Newton's Method
- Demo: Newton's method in n dimensions
- Demo: Rates of Convergence
- Demo: Secant Method
- Demo: Three quadratic functions
-
Optimization
- Introduction
- Methods for unconstrained opt. in one dimension
- Methods for unconstrained opt. in $n$ dimensions
- Nonlinear Least Squares
- Constrained Optimization
- Demo: Conjugate Gradient Method
- Demo: Gauss-Newton
- Demo: Nelder-Mead Method
- Demo: Newton's Method in 1D
- Demo: Newton's Method in n dimensions
- Demo: Sequential Quadratic Programming
- Demo: Steepest Descent
-
Interpolation
- Introduction
- Methods
- Error Estimation
- Piecewise interpolation, Splines
- Demo: Chebyshev Interpolation
- Demo: Choice of Nodes for Polynomial Interpolation
- Demo: Composite Gauss Interpolation Error
- Demo: Interpolation Error
- Demo: Interpolation with Radial Basis Functions
- Demo: Jump with Chebyshev Nodes
- Demo: Lebesgue Constant
- Demo: Monomial interpolation
- Demo: Orthogonal Polynomials
- Demo: Playing with Barycentric Interpolation
-
Numerical Integration and Differentiation
- Numerical Integration
- Quadrature Methods
- Accuracy and Stability
- Gaussian Quadrature
- Composite Quadrature
- Numerical Differentiation
- Richardson Extrapolation
- Demo: Accuracy of Newton-Cotes
- Demo: Finite Differences vs Noise
- Demo: Floating point vs Finite Differences
- Demo: Gaussian quadrature weight finder
- Demo: Newton-Cotes weight finder
- Demo: Richardson with Finite Differences
- Demo: Taking Derivatives with Vandermonde Matrices
-
Initial Value Problems for ODEs
- Existence, Uniqueness, Conditioning
- Numerical Methods (I)
- Accuracy and Stability
- Stiffness
- Numerical Methods (II)
- Demo: Backward Euler stability
- Demo: Dissipation in Runge-Kutta Methods
- Demo: Forward Euler stability
- Demo: Predator-Prey System
- Demo: Stability regions
- Demo: Stiffness
-
Boundary Value Problems for ODEs
- Existence, Uniqueness, Conditioning
- Numerical Methods
- Demo: Finite differences
- Demo: Shooting method
- Demo: Sparse matrices
- Partial Differential Equations and Sparse Linear Algebra
- Additional Topics
- Chapter 01 (Last updated: Jan. 28, 2025)
- Chapter 02 (Last updated: Feb. 06, 2025)
Team
Statement on CS CARES, Values, and Code of Conduct
All members of the Illinois Computer Science department---faculty, staff, and students---are expected to adhere to the CS Values and Code of Conduct. The CS CARES Committee is available to serve as a resource to help people who are concerned about or experience a potential violation of the Code. If you experience such issues, please contact the CS CARES Committee. The instructor of this course are also available for issues related to this class.
Textbook
Scientific Computing: An Introductory Survey / E-Book (accessible free of charge from campus network/VPN)
Michael T. Heath, Revised Second Edition, Society for Industrial and Applied Mathematics
Computing
We will be using Python with the libraries numpy, scipy and matplotlib for in-class work and assignments. No other languages are permitted. Python has a very gentle learning curve, so you should feel at home even if you've never done any work in Python.
Running Code on your Own Computer
While running code in this online system should technically suffice to do your work for this class, you may find it useful to also install Python on your own computer.
The recommended way of doing so involves downloading the Anaconda Python distribution. Note that this is a commercial product (even if it is free of charge), and this is not intended as an endorsement of the company or the product. Note that we cannot promise to provide technical support for this installation.
Another way to run Python code is through an online JupyterLab available through the course. Go to https://relate.cs.illinois.edu/lab get started. NOTE that this environment runs entirely in your browser. If you clear your browser data, any work 'saved' there will be irretrievably lost.
Grading Policies
Python Help
- Python tutorial
- Facts and myths about Python names and values
- Learn Python the hard way
- Project Euler (Lots of practice problems)
- PythonTutor (Execute Python step-by-step, with pictures)
Numpy Help
(see section 1 of the outline for more)
- From Python to Numpy
- With associated 100 numpy exercises
- The SciPy lectures
- The Numpy User Guide
- More in this reddit thread
- An introduction to Numpy and SciPy