cc_qz_zgees: QZ Decomposition for a Complex Matrix

qz.zgeesR Documentation

QZ Decomposition for a Complex Matrix

Description

This function call 'zgees' in Fortran to decompose a 'complex' matrix A.

Usage

  qz.zgees(A, vs = TRUE, LWORK = NULL)

Arguments

A

a 'complex' matrix, dim = c(N, N).

vs

if compute 'complex' Schur vectors. (Q)

LWORK

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

Details

See 'zgees.f' for all details.

ZGEES computes for an N-by-N complex non-symmetric matrix A, the eigenvalues, the Schur form T, and, optionally, the matrix of Schur vectors Q. This gives the Schur factorization A = Q*T*(Q**H).

Optionally, it also orders the eigenvalues on the diagonal of the Schur form so that selected eigenvalues are at the top left. The leading columns of Q then form an orthonormal basis for the invariant subspace corresponding to the selected eigenvalues.

A complex matrix is in Schur form if it is upper triangular.

Value

Return a list contains next:

'T'

A's generalized Schur form.

'W'

generalized eigenvalues.

'VS'

original returns from 'zgees.f'.

'WORK'

optimal LWORK (for zgees.f only)

'INFO'

= 0: successful. < 0: if INFO = -i, the i-th argument had an illegal value. =1,...,N: QZ iteration failed. =N+1: reordering problem. =N+2: reordering failed.

Extra returns in the list:

'Q'

the Schur vectors.

Warning(s)

The results may not be consistent on 32 bits and 64 bits Windows systems, but may be valid on both systems.

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/zgees.f

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

See Also

qz.zgeev

Examples


library(QZ, quiet = TRUE)

### https://www.nag.com/lapack-ex/node94.html
A <- exA1$A
ret <- qz.zgees(A)

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

# verify 2
round(ret$Q %*% H(ret$Q))


snoweye/QZ documentation built on Sept. 12, 2023, 4:59 a.m.