cc_qz_ztrsen: Reordered QZ Decomposition for a Complex Matrix

qz.ztrsenR Documentation

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)

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.

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.

Author(s)

Wei-Chen Chen wccsnow@gmail.com

References

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

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

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

See Also

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

Examples


library(QZ, quiet = TRUE)

### https://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))


QZ documentation built on Sept. 8, 2023, 5:43 p.m.