Visible to Intel only — GUID: GUID-A37AAAD0-DBF8-48BD-91AB-446CCAB4537F
Visible to Intel only — GUID: GUID-A37AAAD0-DBF8-48BD-91AB-446CCAB4537F
Symmetric Eigenvalue Problems: LAPACK Computational Routines
Symmetric eigenvalue problems are posed as follows: given an n-by-n real symmetric or complex Hermitian matrix A, find the eigenvalues λ and the corresponding eigenvectors z that satisfy the equation
Az = λz (or, equivalently, zHA = λzH).
In such eigenvalue problems, all n eigenvalues are real not only for real symmetric but also for complex Hermitian matrices A, and there exists an orthonormal system of n eigenvectors. If A is a symmetric or Hermitian positive-definite matrix, all eigenvalues are positive.
To solve a symmetric eigenvalue problem with LAPACK, you usually need to reduce the matrix to tridiagonal form and then solve the eigenvalue problem with the tridiagonal matrix obtained. LAPACK includes routines for reducing the matrix to a tridiagonal form by an orthogonal (or unitary) similarity transformation A = QTQH as well as for solving tridiagonal symmetric eigenvalue problems. These routines (for FORTRAN 77 interface) are listed in Table "Computational Routines for Solving Symmetric Eigenvalue Problems". The corresponding routine names in the Fortran 95 interface are without the first symbol.
There are different routines for symmetric eigenvalue problems, depending on whether you need all eigenvectors or only some of them or eigenvalues only, whether the matrix A is positive-definite or not, and so on.
These routines are based on three primary algorithms for computing eigenvalues and eigenvectors of symmetric problems: the divide and conquer algorithm, the QR algorithm, and bisection followed by inverse iteration. The divide and conquer algorithm is generally more efficient and is recommended for computing all eigenvalues and eigenvectors. Furthermore, to solve an eigenvalue problem using the divide and conquer algorithm, you need to call only one routine. In general, more than one routine has to be called if the QR algorithm or bisection followed by inverse iteration is used.
Operation |
Real symmetric matrices |
Complex Hermitian matrices |
---|---|---|
Reduce to tridiagonal form A = QTQH (full storage) |
||
Reduce to tridiagonal form A = QTQH (packed storage) |
||
Reduce to tridiagonal form A = QTQH (band storage). |
||
Generate matrix Q (full storage) |
||
Generate matrix Q (packed storage) |
||
Apply matrix Q (full storage) |
||
Multiplies a general matrix by an orthogonal/unitary matrix with a 2x2 structure. |
||
Apply matrix Q (packed storage) |
||
Find all eigenvalues of a tridiagonal matrix T |
|
|
Find all eigenvalues and eigenvectors of a tridiagonal matrix T |
||
Find all eigenvalues and eigenvectors of a tridiagonal positive-definite matrix T. |
||
Find selected eigenvalues of a tridiagonal matrix T |
||
Find selected eigenvectors of a tridiagonal matrix T |
||
Find selected eigenvalues and eigenvectors of f a real symmetric tridiagonal matrix T |
||
Compute the reciprocal condition numbers for the eigenvectors |