Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary...

22
CES 703/3 Imre P´ olik Outline Introduction Stationary Nonstationary Implementation Literature Iterative methods for linear systems Imre P´ olik, PhD McMaster University School of Computational Engineering and Science January 21, 2008

Transcript of Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary...

Page 1: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Literature

Iterative methods for linear systems

Imre Polik, PhD

McMaster UniversitySchool of Computational Engineering and Science

January 21, 2008

Page 2: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Literature

Outline

1 Introduction

2 Stationary methods

3 Nonstationary methods

4 Implementation

Page 3: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Overview

Motivation

Issues

Stationary

Nonstationary

Implementation

Literature

Overview of iterative methods

Input: A, b, (x0)

Output: xapp

Iteration: update the solution

Stationary:

x(k+1) = f(x(k)

), f does not change

Nonstationary:

x(k+1) = fk

(x(k)

), fk updated at every iteration

Approximate solution at every iteration

Stop if close enough (no progress)

Error: e(k) =∥∥x(k) − x

∥∥Residual: r(k) =

∥∥Ax(k) − b∥∥

Page 4: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Overview

Motivation

Issues

Stationary

Nonstationary

Implementation

Literature

Why do we need iterative methods?

Very sparse matrix

quick to compute Au

A is not represented explicitly

A(X) = AX + XB

Memory

not enough space to factorize

Quick and dirty solution needed

preconditioning

Page 5: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Overview

Motivation

Issues

Stationary

Nonstationary

Implementation

Literature

Issues

Convergence (does it work?)

Convergence rate (how fast is it?)

Work per iteration

Extra storage

Stopping criteria

Preconditioning: solve MAx = Mb

Parallelizability

Page 6: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Jacobi

Gauss-Seidel

Matrix splitting

SOR

Nonstationary

Implementation

Literature

1 Introduction

2 Stationary methodsThe Jacobi methodThe Gauss-Seidel methodMatrix splitting in generalSuccessive overrelaxation

3 Nonstationary methods

4 Implementation

Page 7: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Jacobi

Gauss-Seidel

Matrix splitting

SOR

Nonstationary

Implementation

Literature

The Jacobi method

Solve for xi given the other components

x(k)i =

bi −∑

j 6=i aijx(k−1)j

aii

Matrix form (A = D − L− U):

x(k) = D−1(L + U)x(k−1) + D−1b

Trivial efficient parallelization

Needs an extra copy of x

Converges if A is strongly diagonally dominant

Not very efficient in practice

Page 8: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Jacobi

Gauss-Seidel

Matrix splitting

SOR

Nonstationary

Implementation

Literature

The Gauss-Seidel method

Solve for xi given the other components, BUT

Use the updated value if possible

x(k)i =

bi −∑

j<i aijx(k)j −

∑j>i aijx

(k−1)j

aii

Matrix form (A = D − L− U):

x(k) = (D − L)−1(Ux(k−1) + b)

Efficient parallelization is tricky (except for sparse)

x can be updated in place

Everything depends on the order of the update

Converges if A is strongly diagonally dominant or SPD

Better than Jacobi

Page 9: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Jacobi

Gauss-Seidel

Matrix splitting

SOR

Nonstationary

Implementation

Literature

Matrix splitting in general

Decomposition: A = M −N

Iteration: x(k) = M−1Nx(k−1) + M−1b

M should be easy to invert (diagonal, triangular)

Error: e(k) =(M−1N

)ke(0)

Converges if∥∥M−1N

∥∥ < 1Can exploit special structure

Page 10: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Jacobi

Gauss-Seidel

Matrix splitting

SOR

Nonstationary

Implementation

Literature

Successive overrelaxation

Combine iterates of the GS method

x(k)i = ωxGS

(k)i + (1− ω)x(k−1)

i

Matrix form (A = D − L− U):

x(k) = (D − ωL)−1(ωU + (1− ω)D)x(k−1) + ω(D − ωL)−1b

Choose ω to accelerate convergence

ω = 1 gives GS

Optimal ω is hard to find

Converges for any SPD A, ω ∈ (0, 2)

Page 11: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

CG

CG variants

Implementation

Literature

1 Introduction

2 Stationary methods

3 Nonstationary methodsThe Conjugate gradient algorithmVariants of the CG method

4 Implementation

Page 12: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

CG

CG variants

Implementation

Literature

The Conjugate gradient algorithm I

u, v are conjugate: uT Av = 0p(1), . . . , p(n) mutually conjugate vectors

x = α1p(1) + . . . αnp(n)

αk = p(k)Tb

p(k)TAp(k)

Theoretical algorithm

find the conjugate directionscompute the coefficients

Practice: construct the directions on-the-fly

Page 13: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

CG

CG variants

Implementation

Literature

The Conjugate gradient algorithm II

r(0) = b−Ax(0)

p(0) = r(0)

k = 0

α(k) =r(k)T r(k)

p(k)T Ap(k)

x(k+1) = x(k) + α(k)p(k)

r(k+1) = r(k) − α(k)Ap(k)

β(k) =r(k+1)T r(k+1)

r(k)T r(k)

p(k+1) = r(k+1) + β(k)p(k)

k = k + 1

Page 14: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

CG

CG variants

Implementation

Literature

The Conjugate gradient algorithm III

Apply the general CG to min 12xT Ax− bT x

Convergence (‖u‖A = uT Au, A is SPD):

∥∥∥x(k) − x∥∥∥

A≤ 2

(√λmax −

√λmin√

λmax +√

λmin

)k ∥∥∥x(0) − x∥∥∥

A

x(k) is the minimizer over an increasing subspace

span({

b, Ab,A2b, . . . , Ak−1b})

Krylov

Easy to parallelize

Very effective in practice

Page 15: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

CG

CG variants

Implementation

Literature

Variants of the CG method I

CGNE, CGNR

CG for AT A = AT bsimple treatment for nonsymmetric systemspoor numerical performanceslow convergence

GMRES

orthogonalized Krylov systemhandles nonsymmetric systemscomputes only the residual without the iterate!keeps all iterates, needs regular restarts

Biconjugate

two conjugate sequenceshandles nonsymmetric systemsquite unstable, irregular convergencerequires AT

Page 16: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

CG

CG variants

Implementation

Literature

Variants of the CG method II

QMR

improves BiCGmore stablerequires AT

CGS, BiCGSTAB, etc.

The Chebyshev iteration

requires bounds on the eigenvaluesno inner products

Page 17: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Work per iteration

Storage requirement

Stopping criteria

What to try?

Available software

Literature

Work per iteration

Method Inner product Ax + y Matrix-vector

JACOBI 1SOR (GS) 1 1CG 2 3 1GMRES i + 1 i + 1 1BiCG 2 5 1 + 1T

QMR 2 12 1 + 1T

CHEBYSHEV 2 1

Page 18: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Work per iteration

Storage requirement

Stopping criteria

What to try?

Available software

Literature

Storage requirement

JACOBI +3nSOR (GS) +2nCG +6nGMRES +(i + 5)nBiCG +10nQMR +16nCHEBYSHEV +5n

Page 19: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Work per iteration

Storage requirement

Stopping criteria

What to try?

Available software

Literature

Stopping criteria

Small error/residual

No progress

Iteration/time limit reached

Examples: ∥∥∥r(k)∥∥∥ ≤ ε

(‖A‖ ·

∥∥∥x(k)∥∥∥ + ‖b‖

)∥∥∥r(k)

∥∥∥ ≤ ε ‖b‖∥∥∥r(k)∥∥∥ ≤ ε

(∥∥∥x(k)∥∥∥ /

∥∥A−1∥∥)

Page 20: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Work per iteration

Storage requirement

Stopping criteria

What to try?

Available software

Literature

What to try?

1 Chebyshev

2 CG

3 QMR

4 CGS, BiCGSTAB

5 GMRES

Page 21: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Work per iteration

Storage requirement

Stopping criteria

What to try?

Available software

Literature

Available software

ITPACK

http://rene.ma.utexas.edu/CNA/ITPACK/open source, written in Fortranmodified CGsophisticated heuristics to boost convergence

Matlab

Page 22: Iterative methods for linear systems · Gauss-Seidel Matrix splitting SOR Nonstationary Implementation Literature The Gauss-Seidel method Solve for x i given the other components,

CES 703/3

Imre Polik

Outline

Introduction

Stationary

Nonstationary

Implementation

Literature

R. Barrett, M. Berry, T. F. Chan, J. Demmel, J. Donato,J. Dongarra, V. Eijkhout, R. Pozo, C. Romine, and H. Vander Vorst.

Templates for the Solution of Linear Systems: BuildingBlocks for Iterative Methods, 2nd Edition.

SIAM, Philadelphia, PA, 1994.

Alan Edelman.

MIT 18.337: Applied parallel computing.

Lecture notes, 2004.

Chapter 4 and 5.

Alan George and Joseph W. Liu.

Computer Solutions of Large Sparse Positive DefiniteSystems.

Prentice Hall, 1981.