Uses the QL algorithm with implicit shifts to determine the eigenvalues andeigenvectors of a real, symmetric, tridiagonal matrix.
e An n-element vector. On input, it contains the off-diagonal elements of the matrix. e0 is arbitrary.
e An n-element vector. On output, it is destroyed.
z A matrix containing the n eigenvectors. The eigenvectors are stored by rows; for example, z(*, 0) contains the first eigenvector.
If the eigenvectors of a tridiagonal matrix are desired, z should be input as an identity matrix. If the eigenvectors of a matrix that has been reduced by TRED2 are desired, z should be input as the matrix Q output by TRED2.
TQLI is based on the routine of the same name found in Numerical Recipes in C: The Art of Scientific Computing, by Flannery, Press, Teukolsky, and Vetterling, Cambridge University Press, Cambridge, MA, 1988. It is used by permission.
However, because the order of subscripts in PV-WAVE are reversed in comparison to those in Numerical Recipes, the z matrix is transposed from the result described in that book.
A
:
asave = A
TRED2, A, d, e
A
to tridiagonal form.
TQLI, d, e, A
A
is said to have an eigenvector x
and corresponding eigenvalue if:
FOR i=0, N_ELEMENTS(d)-1 DO BEGIN
PRINT, 'Eigenvalue', i, '=', d(i)
PRINT, 'Eigenvector = ', Aa(*,i)
PRINT, 'A x / lambda = ', asave # A(*,i)/d(i)
ENDFOR