Iterative and Multigrid Methods
CS556 :: Fall 2021
- Class Time/Place: Tuesday/Thursday 09:30am-10:45pm Catalog
- Class URL: go.illinois.edu/cs556
- Slack: cs556-f21
- Video: mediaspace channel
- Instructor: Luke Olson
- Office Hours: Wednesdays at noon (central time)
- Zoom: see the links below under Lecture
About the Course
Do you have a large, sparse matrix or graph problem that you'd like to solve? Then this course is for you!
The course covers roughly three topics: the fundamentals of numerical linear algebra, iterative methods (such as CG and GMRES), and multilevel methods (for example geometric and algebraic multigrid).
The course involves several homeworks (usually bi-weekly) and two projects: a midsemester project with a focus on Krylov methods and a final project focussed on multigrid. There is also a strong participation grade based on your attendence (informal) and ability to keep up with handouts and other tasks. The tentative grade breakdown is:
- Homework 50
- Final Project 30
- Attendance and handouts 20
This will be finalized by the first week of class.
The course homeworks and examples in class will be in Python. In particular, we'll use the sparse features in Scipy and the solvers in PyAMG.
Books
We will be using Saad's book Iterative methods for sparse linear systems
In addition, there are several other helpful texts (optional):
- Numerical Linear Algebra by Trefethen and Bau
- Iterative Methods for Large Liner Systems by van der Vorst
- A Multigrid Tutorial
Computing
We will be using Python with the libraries numpy, scipy and matplotlib for assignments. No other languages are permitted.
Python and Numpy Help
- Python tutorial
- Facts and myths about Python names and values
- Dive into Python 3
- 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
- An introduction to Numpy and SciPy
- 100 Numpy exercises