# 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

**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

# 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