Iterative and Multigrid Methods
CS556 :: Fall 2016
- Class Time/Place: Tuesday/Thursday 11:00am-12:15pm Catalog, 1302 Siebel Center
- Class URL: go.illinois.edu/cs556
- Web forum piazza.com/illinois/fall2016/cs556
- Instructor: Luke Olson
- Olson Office Hours: Tuesdays/Thursdays 1-2pm, 4312 Siebel
- Beams Office Hours: Wednesdays 3-5pm, 4336 Siebel
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:
-
40% Homework
-
20% Mid-term Project
-
30% Final Project
-
10% Participation (attendence, weekly handouts, etc)
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.
Late Homework Policy Homeworks are due by the time posted above. If submitted for grading after the deadline, they will be graded at 50% credit up to one week late.
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.
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