EIGEN Call
computes eigenvalues and eigenvectors
- CALL EIGEN( eigenvalues, eigenvectors,
A)
<VECL="vl">;
where A is an arbitrary square numeric matrix
for which eigenvalues and eigenvectors are to be calculated.
The EIGEN call returns the following values:
- eigenvalues
- a matrix to contain the eigenvalues of the input matrix.
- eigenvectors
- names a matrix to contain the right eigenvectors of the input matrix.
- vl
- is an optional n ×n matrix containing
the left eigenvectors of A in the same
manner that eigenvectors contains the right eigenvectors.
The EIGEN subroutine computes eigenvalues,
a matrix containing the eigenvalues of
A arranged in descending order. If A
is symmetric, eigenvalues in the n ×1 vector containing
the n real eigenvalues of A.
If A is not symmetric (as determined by the criterion
described below) eigenvalues
is an n ×2 matrix containing the eigenvalues of the
n ×n matrix A. The first column
of A contains the real parts, Re(
, and the
second column contains the imaginary parts Im
.Each row represents one eigenvalue,
.Complex conjugate eigenvalues, Re
,are stored in standard order; that is, the eigenvalue of
the pair with a positive imaginary part is followed by the
eigenvalue of the pair with the negative imaginary part.
The EIGEN subroutine also computes eigenvectors,
a matrix. If A is symmetric, then
eigenvectors has orthonormal column eigenvectors of
A arranged so that the matrices correspond;
that is, the first column of eigenvectors is the
eigenvector corresponding to the largest eigenvalue, and so forth.
If A is not symmetric, then
eigenvectors is an n ×n matrix containing
the right eigenvectors of A.
If the eigenvalue in row i of eigenvalues is real, then column
i of eigenvectors contains the corresponding real eigenvector.
If rows i and i+1 of eigenvalues contain complex
conjugate eigenvalues Re
,then columns i and i+1 of eigenvectors contain the real,
v, and imaginary,
, parts, respectively,
of the two corresponding eigenvectors
.
The eigenvalues of a matrix A are the
roots of the characteristic polynomial, which
is defined as p(z) = det(zI- A).
The spectrum, denoted by
, is
the set of eigenvalues of the matrix A.
If
, then
.
The trace of A is defined by

and tr
.
An eigenvector is a nonzero vector, x, that satisfies
for
.
Right eigenvectors satisfy
, and left
eigenvectors satisfy
.
The following are properties of the unsymmetric
real eigenvalue problem, in which the real
matrix A is square but not necessarily symmetric:
- The eigenvalues of an unsymmetric
matrix A can be complex.
If A has a complex
eigenvalue
, then the
conjugate complex value
is also an eigenvalue of A.
- The right and left eigenvectors corresponding
to a real eigenvalue of A are real.
The right and left eigenvectors corresponding to conjugate
complex eigenvalues of A are also conjugate complex.
- The left eigenvectors of A are the same as the
complex conjugate right eigenvectors of A'.
The three routines, EIGEN, EIGVAL,
and EIGVEC, use the following test
of symmetry for a square argument matrix A:
- Select the entry of A with the largest magnitude:

- Multiply the value of amax with the square
root of the machine precision
. (The value of
is the largest value
stored in double precision that, when added
to 1 in double precision, still results in 1.)
- The matrix A is considered unsymmetric
if there exists at least one pair of symmetric entries
that differs in more than
,

If A is symmetric, the
result of the statement
call eigen(m,e,a);
has the properties

that is,
-
E' = inv(E)
so that
-
A = E* diag(M)*E' .
The QL method is used to compute the
eigenvalues (Wilkinson and Reinsch 1971).
In statistical applications, nonsymmetric matrices for which
eigenvalues are desired are usually of the form E-1 H, where E and H are symmetric.
The eigenvalues L and eigenvectors
V of E-1H can be obtained
by using the GENEIG subroutine or as follows:
f=root(einv);
a=f*h*f';
call eigen(l,w,a);
v=f'*w;
The computation can be checked by forming the residuals:
r=einv*h*v-v*diag(l);
The values in R should be of the order of round-off error.
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.