_INVIT(3F) _INVIT(3F)
INVIT, SINVIT - EISPACK routine. This subroutine finds those
eigenvectors of a REAL UPPER Hessenberg matrix corresponding to specified
eigenvalues, using inverse iteration.
subroutine invit(nm,n,a,wr,wi,select,mm,m,z,ierr,rm1,rv1,rv2)
integer nm, n, mm, m, ierr
double precision a(nm,n), wr(n), wi(n), z(nm,mm)
double precision rm1(n,n), rv1(n), rv2(n)
logical select(n)
subroutine sinvit(nm,n,a,wr,wi,select,mm,m,z,ierr,rm1,rv1,rv2)
integer nm, n, mm, m, ierr
real a(nm,n), wr(n), wi(n), z(nm,mm)
real rm1(n,n), rv1(n), rv2(n)
logical select(n)
On INPUT
NM must be set to the row dimension of two-dimensional array parameters
as declared in the calling program dimension statement.
N is the order of the matrix.
A contains the Hessenberg matrix.
WR and WI contain the real and imaginary parts, respectively, of the
eigenvalues of the matrix. The eigenvalues MUST be stored in a manner
IDENTICAL to that of subroutine HQR, which recognizes possible splitting
of the matrix.
SELECT specifies the eigenvectors to be found. The eigenvector
corresponding to the J-th eigenvalue is specified by setting SELECT(J) to
.TRUE.
MM should be set to an upper bound for the number of columns required to
store the eigenvectors to be found. NOTE that two columns are required
to store the eigenvector corresponding to a complex eigenvalue. On
OUTPUT
A and WI are unaltered.
WR may have been altered since close eigenvalues are perturbed slightly
in searching for independent eigenvectors.
SELECT may have been altered. If the elements corresponding to a pair of
conjugate complex eigenvalues were each initially set to .TRUE., the
Page 1
_INVIT(3F) _INVIT(3F)
program resets the second of the two elements to .FALSE.
M is the number of columns actually used to store the eigenvectors.
Z contains the real and imaginary parts of the eigenvectors. If the next
selected eigenvalue is real, the next column of Z contains its
eigenvector. If the eigenvalue is complex, the next two columns of Z
contain the real and imaginary parts of its eigenvector. The
eigenvectors are normalized so that the component of largest magnitude is
1. Any vector which fails the acceptance test is set to zero.
IERR is set to ZERO for normal return, -(2*N+1) if more than MM
columns of Z are necessary
to store the eigenvectors corresponding to
the specified eigenvalues. -K if the iteration corresponding
to the K-th
value fails, -(N+K) if both error situations occur.
RM1 , RV1, and RV2 are temporary storage arrays. Note that RM1 is square
of dimension N by N and, augmented by two columns of Z, is the transpose
of the corresponding ALGOL B array. The ALGOL procedure GUESSVEC appears
in INVIT in line. Calls PYTHAG(A,B) for sqrt(A**2 + B**2). Calls CDIV
for complex division. Questions and comments should be directed to B. S.
Garbow, APPLIED MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY
PPPPaaaaggggeeee 2222 [ Back ]
|