# Multigrid methods

One of the difficulties when talking about relative speeds of numerical methods is trying to get a hand on the speed up for various methods. This demonstration of the multigrid method shows how much better than Jacobi and Gauss-Seidel are for solving linear systems.

## Contents

## The theory

The general idea of multigrid is that convergence for Gauss-Seidel depends on the frequency of the solution relative to the grid size. By applying Gauss-Seidel on a variety of different grid sizes this effect can be used to great effect. The most basic form of multigrid inolves solving the Poisson equation by finite differences on a grid. This reduces to a matrix equation . In order to solve this equation we apply Gauss-Seidel a few times on a full size grid, before *restricting* the problem to a smaller grid and repeating the process. Once we've solve reduce the grid sufficiently many times we can solve the linear system and *prolongate* the solution to larger grid sizes.

## The GUI

The GUI solves the 1D Poisson equation on a grid size of with zero boundary conditions. We've picked the function to ensure a range of frequencies.

multigrid_gui

You can alter the method used to solve this system: relaxed Jacobi, Gauss-Seidel or multigrid and can see just how much quicker multigrid is than these two other methods.

## References

The code for this project is based on Professor Demanet's code found on his course page

## Code

- multigrid_gui.m (Run this)
- multigrid_gui.fig (Required)

All files as .zip archive: multigrid_all.zip