[ Home ] Numerical Methods. Note « 10 »

Matrix diagonalization. Eigensystems,eigenvalues and eigenvectors.

The standard routines for all sorts of matrices can be found in EISPACK and LAPACK (newer versions).

A vector x is called an eigenvector of a matrix A with an eigenvalue λ, if Axx. Matrix diagonalization means finding all eigenvalues λi and (optionally) eigenvectors xi of the matrix A. If A is hermitian then its eigenvalues are real and its eigenvectors X={x1,...,xn} form a full basis in which the matrix A is diagonal XTAX=diag{λ1,...,λn}.

Orthogonal transformations A→QTAQ, where QTQ=1, preserve eigenvalues and eigenvectors.

QR/QL algorithm. If we know QR (or QL) decomposition of matrix A, then the orthogonal transformation A→QTAQ=RQ partly turn the matrix A into a triangular form. Successive iterations eventually make it triangular where the eigenvalues are on the diagonal. If there are degenerate eigenvalues there will be a corresponding block-diagonal sub-matrix. For convergence properties it is better to use shifts: instead of QR[A] we do QR[A-s1] and then A→QTAQ=RQ+s1. The shift s can be chosen as Ann. As soon as an eigenvalue is found the matrix is deflated, that is the corresponding row and column are crossed out.

Tridiagonalization. Each iteration of the QR/QL is an O(n3) operation. On a tridiagonal matrix it is only O(n). Therefore the effective strategy is first to make the matrix tridiagonal (with, e.g. Householder transformation) and then apply the QR/QL algorithm. Tridiagonalization of a matrix is a non-iterative operation with a fixed number of steps.

Lanczos tridiagonalization. Lanczos algorithm is an orthogonal transformation of a matrix A into a tridiagonal form T: QTAQ=T. The tridiagonal matrix T may be of a lower dimension. If {a1,...,an} are the diagonal elements of T and {b2,...,bn} are the off-diagonal elements, then the equation AQ=QT can be written as Aqi=biqi-1+aiqi+bi+1qi+1 , where ai=qiTAqi.

From this we can define the iterative procedure qi+1=normalized[(A-ai1)qi-biqi-1] , bi+1=normofthatvector

One starts with a randomly chosen starting vector q1 and makes as many iterations as needed for the convergence.

Steepest descent method. The method is used when only few lowest eigenvalues are needed. It is based on the variational principle λ[x]≡(xTAx)/(xTx)≥λ1. We start with an arbitrary initial vector x and make an improvement upon it by adding a (small) correction x → x + αΔx, where Δx ≡ (A-λ)x, and α is a parameter. For small α<0 the new eigenvalue
λ[x + αΔx]~λ[x] + 2α(ΔxTΔx) + α2(ΔxTAΔx) will always be smaller than the original unless we are at the solution (Δx=0). The parameter α is chosen to minimize the new λ

α = - (ΔxTΔx)/(ΔxTAΔx) .
The operation is repeated until the desired accuracy is reached. The matrix is then deflated and the procedure started again.

Problems. Implement after your choice:

  1. Lanczos tridiagonalization + QR/QL algorithm with shifts and deflation.
  2. Steepest descent method with deflation.

"Copyleft" © 2001 D.V.Fedorov (fedorov@ifa.au.dk)