Numerical Analysis (CS 450) Fall 2019
What | Where |
---|---|
Time/place | MW 3:30pm--4:45pm 1320 DCL / Catalog |
Class URL | https://relate.cs.illinois.edu/course/cs450-f19/ or https://bit.ly.cs450-f19 |
Instructor | Luke Olson |
Quick Links | Discuss on Piazza »Calendar »Echo 360 Video» |
Course Outline
-
Introduction
- 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: Polynomial Evaluation Floating Point
- Demo: Truncation vs Rounding
- Demo: Vector Norms
- Demo: Writing Testable Numerics Code
-
Systems of Linear Equations
- Demo: Coding back-substitution
- Demo: Complexity of Mat-Mat multiplication and LU
- Demo: Condition number visualized
- Demo: Conditioning of 2x2 Matrices
- Demo: Elimination Matrices I
- Demo: Elimination Matrices II
- Demo: LU factorization
- Demo: LU with Partial Pivoting
- Demo: Matrix norms
- Demo: Sherman-Morrison
- Demo: Vanilla Gaussian Elimination
-
Linear Least Squares
- Demo: 3x3 Givens demo
- Demo: 3x3 Householder demo
- Demo: Gram-Schmidt and Modified Gram-Schmidt
- Demo: Gram-Schmidt--The Movie
- 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
- Demo: Arnoldi Iteration with Complex Eigenvalues
- Demo: Arnoldi Iteration
- Demo: Bauer-Fike Eigenvalue Sensitivity Bound
- Demo: Computing the SVD
- Demo: Householder Similarity Transforms
- Demo: Orthogonal Iteration
- Demo: Power iteration and its Variants
- Demo: Rounding in characteristic polynomial using SymPy
- Nonlinear Equations
-
Optimization
- Demo: Conjugate Gradient Method
- Demo: Conjugate Gradient Parallel Tangents as Krylov Subspace Method
- Demo: Gauss-Newton
- Demo: Golden Section Proportions
- 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
- Numerical Integration and Differentiation
- Initial Value Problems for ODEs
- Boundary Value Problems for ODEs
- Partial Differential Equations and Sparse Linear Algebra
- Fast Fourier Transform
- Additional Topics
Team
(Teaching Assistant)
Email: voronin2@illinois.edu
Office: 0209 Siebel
Office Hours: Wednesday 1.30-2.30 pm Friday 2.30-3.30 pm
Ping-Hsuan Tsai
(Teaching Assistant)
Email: pht2@illinois.edu
Office: 0209 Siebel
Office Hours: Tuesday and Friday 9-10 am
(Teaching Assistant)
Email: idf2@illinois.edu
Office: 0209 Siebel
Office Hours: Wednesday and Friday 12.30-1.30 pm
Malachi Phillips
(Teaching Assistant)
Email: malachi2@illinois.edu
Office: 0207 Siebel
Office Hours: Monday 2-3 pm, Thursday 3-4pm
Textbook
Michael T. Heath, Revised Second Edition, Society for Industrial and Applied Mathematics
Also see our class Piazza forum for a discount code for purchasing the book from SIAM.
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 relate 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 and perhaps one of the easier ways 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 obtain a Python installation is through a virtual machine image:
Python Help
(see section 1 of the outline for more)
- Python tutorial
- Facts and myths about Python names and values
- Learn Python the hard way
- Project Euler (Lots of practice problems)
- From Python to Numpy
Python workshop material
- Video: Located on Echo 360 along with the other class recordings
- Tutorial material
- Scipy lecture notes
- CSE workshop training material
Numpy Help
(see section 1 of the outline for more)
- Introduction to Python for Science
- The SciPy lectures
- The Numpy MedKit by Stéfan van der Walt
- The Numpy User Guide by Travis Oliphant
- Numpy/Scipy documentation
- More in this reddit thread
- Spyder (a Python IDE, like Matlab) is installed in the virtual machine. (Applications Menu > Development > Spyder)
- An introduction to Numpy and SciPy