I taught this course in Spring 2008 at McMaster University.

Course contents

  • Basic concepts in linear algebra. Data structures, matrix storage schemes, elementary operations. Computer architectures, BLAS, LAPACK. Linear systems, solvability. Conditioning, error analysis.
  • Direct methods for linear systems: Gaussian elimination, Iterative refinement. LU and Cholesky factorizations. Column/row orderings.
  • Iterative methods for linear systems: Jacobi, Gauss-Seidel, Krylov method. Conjugate gradient.
  • Linear least squares problems: normal equations. QR factorization, Householder transformation, Givens rotation. SVD.
  • Real symmetric eigenvalue problems: sensitivity of eigenvalues, factorization, extremal eigenvalues.
  • Power method, inverse iteration, Rayleigh quotient, Jacobi method, Lanczos method.


Assignment 1

Assignment 2

Assignment 3

Lecture slides

Lecture 1: Introduction

Lecture 2: Direct methods for linear systems

Lecture 3: Iterative methods for linear systems

Lecture 4: Least squares problems

Lecture 5: Direct methods for symmetric eigenvalue problems

Lecture 6: Iterative methods for symmetric eigenvalue problems

Suggested readings

Alan Edelman. MIT 18.337: Applied parallel computing. Lecture notes, 2004. Chapters 4 and 5.

Alan George and Joseph W. Liu. Computer Solutions of Large Sparse Positive Definite Systems. Prentice Hall, 1981.

R. Barrett, M. Berry, T. F. Chan, J. Demmel, J. Donato, J. Dongarra, V. Eijkhout, R. Pozo, C. Romine, and H. Van der Vorst, Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, 2nd Edition. SIAM, Philadelphia, PA, 1994. Available from here.