F08QXF (ZTREVC) computes selected left and/or right eigenvectors of a complex upper triangular matrix.
SUBROUTINE F08QXF ( |
JOB, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO) |
INTEGER |
N, LDT, LDVL, LDVR, MM, M, INFO |
REAL (KIND=nag_wp) |
RWORK(N) |
COMPLEX (KIND=nag_wp) |
T(LDT,*), VL(LDVL,*), VR(LDVR,*), WORK(2*N) |
LOGICAL |
SELECT(*) |
CHARACTER(1) |
JOB, HOWMNY |
|
F08QXF (ZTREVC) computes left and/or right eigenvectors of a complex upper triangular matrix
. Such a matrix arises from the Schur factorization of a complex general matrix, as computed by
F08PSF (ZHSEQR), for example.
The right eigenvector
, and the left eigenvector
, corresponding to an eigenvalue
, are defined by:
The routine can compute the eigenvectors corresponding to selected eigenvalues, or it can compute all the eigenvectors. In the latter case the eigenvectors may optionally be pre-multiplied by an input matrix
. Normally
is a unitary matrix from the Schur factorization of a matrix
as
; if
is a (left or right) eigenvector of
, then
is an eigenvector of
.
The eigenvectors are computed by forward or backward substitution. They are scaled so that
.
If
is an exact right eigenvector, and
is the corresponding computed eigenvector, then the angle
between them is bounded as follows:
where
is the reciprocal condition number of
.
The condition number
may be computed by calling
F08QYF (ZTRSNA).
The real analogue of this routine is
F08QKF (DTREVC).