** Next:** Balancing
** Up:** Nonsymmetric Eigenproblems
** Previous:** Nonsymmetric Eigenproblems
** Contents**
** Index**

###

Eigenvalues, Eigenvectors and Schur Factorization

Let *A* be a square *n*-by-*n* matrix. A scalar
is called
an **eigenvalue** and a non-zero column vector *v* the corresponding
**right eigenvector** if
.
A nonzero column vector *u*
satisfying
is called the **left eigenvector**.
The first basic task
of the routines described in this section
is to compute, for a given matrix *A*, all *n* values of
and,
if desired, their associated right eigenvectors *v* and/or
left eigenvectors *u*.
A second basic task is to compute the **Schur factorization** of a matrix *A*.
If *A* is complex, then its Schur factorization is *A*=*ZTZ*^{H}, where
*Z* is unitary and *T* is upper triangular. If *A* is real, its
Schur factorization is *A*=*ZTZ*^{T}, where *Z* is orthogonal.
and *T* is upper quasi-triangular (**1**-by-**1** and **2**-by-**2** blocks on
its diagonal).
The columns of *Z* are called the **Schur vectors ** of *A*.
The eigenvalues of *A* appear on the diagonal of *T*; complex conjugate
eigenvalues of a real *A* correspond to **2**-by-**2** blocks on the diagonal of *T*.

These two basic tasks can be performed in the following stages:

- 1.
- A general matrix
*A* is reduced to **upper Hessenberg form** *H*
which is zero below the first subdiagonal. The reduction may be written
*A*=*QHQ*^{T} with *Q* orthogonal if *A* is real, or
*A*=*QHQ*^{H} with *Q* unitary if *A* is complex.
The reduction is performed by subroutine xGEHRD, which
represents
*Q* in a factored form, as described in section 5.4.
The routine xORGHR (or in the complex case xUNGHR) is provided to
form *Q* explicitly.
The routine xORMHR (or in the complex case xUNMHR) is provided to
multiply another matrix by *Q* without forming *Q* explicitly.

- 2.
- The upper Hessenberg matrix
*H* is reduced to Schur form *T*,
giving the Schur factorization *H*=*STS*^{T}
(for *H* real) or *H*=*STS*^{H} (for *H* complex). The matrix *S* (the Schur vectors
of *H*) may
optionally be computed as well. Alternatively *S* may be postmultiplied
into the matrix *Q* determined in stage 1, to give the matrix *Z* = *Q S*, the
Schur vectors of *A*. The eigenvalues are obtained from the
diagonal of *T*. All this is done by subroutine xHSEQR.

- 3.
- Given the eigenvalues, the eigenvectors may be computed in
two different ways. xHSEIN performs inverse iteration on
*H* to compute
the eigenvectors of *H*;
xORMHR can then be used to multiply the eigenvectors by the matrix *Q*
in order to transform them to eigenvectors of *A*.
xTREVC computes the eigenvectors of *T*, and optionally transforms them
to those of *H* or *A* if the matrix *S* or *Z* is supplied.
Both xHSEIN and xTREVC allow selected left and/or right eigenvectors
to be computed.

Other subsidiary tasks may be performed before or after those just described.

** Next:** Balancing
** Up:** Nonsymmetric Eigenproblems
** Previous:** Nonsymmetric Eigenproblems
** Contents**
** Index**
*Susan Blackford*

*1999-10-01*