schur: Schur Decomposition of a Matrix
Description
Computes the Schur decomposition and eigenvalues of a square matrix.Usage
## S3 method for class 'Matrix':
schur(x, vectors=TRUE, \dots)
Arguments
x
numeric or complex square Matrix inheriting from class
"Matrix"
. Missing values (NAs) are not allowed.
vectors
logical. When TRUE
(the default), the Schur
vectors are computed.
...
further arguments passed to or from other methods.
Value
- An object of class
c("schur.Matrix", "decomp")
whose
attributes include the eigenvalues, the Schur quasi-triangular form
of the matrix, and the Schur vectors (if requested).
BACKGROUND
If A
is a square matrix, then A = Q T t(Q)
, where
Q
is orthogonal, and T
is upper quasi-triangular
(nearly triangular with either 1 by 1 or 2 by 2 blocks on the
diagonal).
The eigenvalues of A
are the same as those of T
,
which are easy to compute. The Schur form is used most often for
computing non-symmetric eigenvalue decompositions, and for computing
functions of matrices such as matrix exponentials.Details
Based on the Lapack functions dgeesx
References
Anderson, E., et al. (1994).
LAPACK User's Guide,
2nd edition, SIAM, Philadelphia.Examples
Run this codeschur(hilbert(9)) # Schur factorization (real eigenvalues)
A <- Matrix(rnorm( 9*9, sd = 100), nrow = 9)
schur.A <- schur(A)
mod.eig <- Mod(schur.A$values) # eigenvalue modulus
schur.A
Run the code above in your browser using DataLab