IDL

TRIQL

TRIQL

The TRIQL procedure uses the QL algorithm with implicit shifts to determine the eigenvalues and eigenvectors of a real, symmetric, tridiagonal array. The routine TRIRED can be used to reduce a real, symmetric array to the tridiagonal form suitable for input to this procedure.

Note: If you are working with complex inputs, use the LA_TRIQL procedure instead.

Examples


To compute eigenvalues and eigenvectors of a real, symmetric, tridiagonal array, begin with an array A representing a symmetric array:

; Create the array A:
A = [[ 3.0,  1.0, -4.0], $
    [ 1.0,  3.0, -4.0], $
    [-4.0, -4.0,  8.0]]
; Compute the tridiagonal form of A:
TRIRED, A, D, E
; Compute the eigenvalues (returned in vector D) and the
; eigenvectors (returned in the rows of the array A):
TRIQL, D, E, A
; Print eigenvalues:
PRINT, 'Eigenvalues:'
PRINT, D
; Print eigenvectors:
PRINT, 'Eigenvectors:'
PRINT, A

IDL prints:

Eigenvalues:
  2.00000  4.76837e-7  12.0000
 
Eigenvectors:
  0.707107  -0.707107   0.00000
 -0.577350  -0.577350  -0.577350
 -0.408248  -0.408248   0.816497

The exact eigenvalues are:

  [2.0, 0.0, 12.0]

The exact eigenvectors are:

 [ 1.0/sqrt(2.0), -1.0/sqrt(2.0), 0.0/sqrt(2.0)],
 [-1.0/sqrt(3.0), -1.0/sqrt(3.0), -1.0/sqrt(3.0)],
 [-1.0/sqrt(6.0), -1.0/sqrt(6.0), 2.0/sqrt(6.0)]

Syntax


TRIQL, D, E, A [, /DOUBLE]

Arguments


D

On input, this argument should be an n-element vector containing the diagonal elements of the array being analyzed. On output, D contains the eigenvalues.

E

An n-element vector containing the off-diagonal elements of the array. E0 is arbitrary. On output, this parameter is destroyed.

A

A named variable that returns the n eigenvectors. If the eigenvectors of a tridiagonal array are desired, A should be input as an identity array. If the eigenvectors of an array that has been reduced by TRIRED are desired, A is input as the array Q output by TRIRED.

Keywords


DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

Version History


4.0

Introduced

Resources and References


TRIQL is based on the routine tqli described in section 11.3 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission.

See Also


EIGENVEC, ELMHES, HQR, LA_TRIQL, TRIRED



Notes


This page has no user notes yet. Be the first one!


This information is not subject to the controls of the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). However, it may be restricted from transfer to various embargoed countries under U.S. laws and regulations.
© 2014 Exelis Visual Information Solutions