Iterative and Multigrid Methods
CS556 :: Fall 2018
- Class Time/Place: Tuesday/Thursday 11:30am-12:45pm Catalog, 1109 Siebel Center
- Class URL: go.illinois.edu/cs556
- Piazza piazza.com/illinois/fall2018/cs556/home
- Instructor: Luke Olson
About the Course
The course is divided roughly into three parts: the basics of numerical linear algebra, iterative methods (such as CG, GMRES, BiCGStab, etc), and multilevel methods (for example geometric and algebraic multigrid). If there is time we will also cover some popular software packages such as PETSc.
The course involve several homeworks (usually bi-weekly) and two projects: a midsemester project focussesd 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 40
- Final Project 40
- Attendance and handouts 10
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.
Homeworks are due by the time posted above.
- Homework 1, Due Thursday 9/13 at 5pm
- Homework 2, Due Monday 10/01 at 5pm
- Homework 3, Due Tuesday 10/16 at 5pm
- Homework 4, Due Tuesday 11/06 at noon
- In-class Handout, Due Tuesday 10/16 at the end of class.
- In-class Handout, Due Thursday 11/1 at the beginning of class.
- Final topic selection, Due Friday, 11/16 at 5pm
- Final outline, Due Monday, 11/26 at 5pm
- Final progress on numerics Due Wednesday, 12/05 at 5pm
- Final rough draft Due Monday, 12/10 at 5pm
- Final final Due Monday, 12/17 at 5pm
Guidelines and files
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
Virtual Machine Image
While you are free to install Python and Numpy on your own computer to do homework, the only supported way to do so is using the supplied virtual machine image.
Python and Numpy Help
- Python tutorial
- Facts and myths about Python names and values
- Dive into Python 3
- Project Euler (Lots of practice problems)
- 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
- 100 Numpy exercises