Schur {Matrix} | R Documentation |
Computes the Schur decomposition and eigenvalues of a square matrix.
Schur(x, vectors, ...)
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. |
Based on the Lapack subroutine dgees
.
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).
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.
Anderson, E., et al. (1994). LAPACK User's Guide, 2nd edition, SIAM, Philadelphia.
Schur(Hilbert(9)) # Schur factorization (real eigenvalues) (A <- Matrix(round(rnorm(5*5, sd = 100)), nrow = 5)) (Sch.A <- Schur(A)) ## The 'WR' and 'WI' components: eTA <- eigen(Sch.A$T) stopifnot(all.equal(eTA$values, eigen(A)$values, tol = 1e-13), all.equal(eTA$values, local({z <- with(Sch.A, WR + 1i* WI) z[order(Mod(z), decreasing=TRUE)]}), tol = 1e-13))