QZ (version 0.1-7)

qz.ztrsen: Reordered QZ Decomposition for a Complex Matrix

Description

This function call 'ztrsend' in Fortran to reorder 'complex' matrix (T,Q).

Usage

qz.ztrsen(T, Q, select, job = c("B", "V", "E", "N"),
            want.Q = TRUE, LWORK = NULL)

Arguments

T

a 'complex' generalized Schur form, dim = c(N, N).

Q

a 'complex' Schur vectors, dim = c(N, N).

select

specifies the eigenvalues in the selected cluster.

job

Specifies whether condition numbers are required for the cluster of eigenvalues (S) or the invariant subspace (SEP).

want.Q

if update Q.

LWORK

optional, dimension of array WORK for workspace. (>= N(N+1)/2)

Value

Return a list contains next:

'T'

T's reorded generalized Schur form.

'W'

generalized eigenvalues.

'M'

original returns from 'ztrsen.f'.

'S'

original returns from 'ztrsen.f'.

'SEP'

original returns from 'ztrsen.f'.

'WORK'

optimal LWORK (for ztrsen.f only)

'INFO'

= 0: successful. < 0: if INFO = -i, the i-th argument had an illegal value.

Extra returns in the list:

'Q'

the reorded Schur vectors.

Warning(s)

There is no format checking for T and Q which are usually returned by qz.zgees.

There is also no checking for select which is usually according to the returns of qz.zgeev.

Details

See 'ztrsen.f' for all details.

ZTRSEN reorders the Schur factorization of a complex matrix A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in the leading positions on the diagonal of the upper triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace.

Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace.

References

Anderson, E., et al. (1999) LAPACK User's Guide, 3rd edition, SIAM, Philadelphia.

http://www.netlib.org/lapack/complex16/ztrsen.f

http://en.wikipedia.org/wiki/Schur_decomposition

See Also

qz.zgees, qz.dgees, qz.dtrsen.

Examples

Run this code
# NOT RUN {
<!-- % \dontrun{ -->
# }
# NOT RUN {
library(QZ, quiet = TRUE)

### http://www.nag.com/numeric/fl/nagdoc_fl23/xhtml/F08/f08quf.xml
T <- exA3$T
Q <- exA3$Q
select <- c(TRUE, FALSE, FALSE, TRUE)
ret <- qz.ztrsen(T, Q, select)

# Verify 1
A <- Q %*% T %*% solve(Q)
A.new <- ret$Q %*% ret$T %*% solve(ret$Q)
round(A - A.new)

# verify 2
round(ret$Q %*% solve(ret$Q))
# }
# NOT RUN {
<!-- % } -->
# }

Run the code above in your browser using DataLab