R: Generalized Schur decomposition

gqz {geigen} | R Documentation

## Generalized Schur decomposition

### Description

Computes the generalized eigenvalues and Schur form of a pair of matrices.

### Usage

    gqz(A, B, sort=c("N","-","+","S","B","R"))

### Arguments

`A` | left hand side matrix.
`B` | right hand side matrix.
`sort` | how to sort the generalized eigenvalues. See ‘Details’.

### Details

Both matrices must be square. This function provides the solution to the generalized eigenvalue problem defined by

A*x = lambda B*x

If either one of the matrices is complex the other matrix is coerced to be complex.

The `sort` argument specifies how to order the eigenvalues on the diagonal of the generalized Schur form, where it is noted that non-finite eigenvalues never satisfy any ordering condition (even in the case of a complex infinity). Eigenvalues that are placed in the leading block of the Schur form satisfy

`N`

  unordered.

`-`

  negative real part.

`+`

  positive real part.

`S`

  absolute value < 1.

`B`

  absolute value > 1.

`R`

  imaginary part identical to 0 with a tolerance of 100*machine_precision as determined by Lapack.

### Value

The generalized Schur form for numeric matrices is

(A,B) = (Q*S*Z^T, Q*T*Z^T)

The matrices Q and Z are orthogonal. The matrix S is quasi-upper triangular and the matrix T is upper triangular. The return value is a list containing the following components

`S`

  generalized Schur form of A.

`T`

  generalized Schur form of B.

`sdim`

  the number of eigenvalues (after sorting) for which the sorting condition is true.

`alphar`

  numerator of the real parts of the eigenvalues (numeric).

`alphai`

  numerator of the imaginary parts of the eigenvalues (numeric).

`beta`

  denominator of the expression for the eigenvalues (numeric).

`Q`

  matrix of left Schur vectors (matrix Q).

`Z`

  matrix of right Schur vectors (matrix Z).

The generalized Schur form for complex matrices is

(A,B) = (Q*S*Z^H, Q*T*Z^H)

The matrices Q and Z are unitary and the matrices S and T are upper triangular. The return value is a list containing the following components

`S`

  generalized Schur form of A.

`T`

  generalized Schur form of B.

`sdim`

  the number of eigenvalues. (after sorting) for which the sorting condition is true.

`alpha`

  numerator of the eigenvalues (complex).

`beta`

  denominator of the eigenvalues (complex).

`Q`

  matrix of left Schur vectors (matrix Q).

`Z`

  matrix of right Schur vectors (matrix Z).

The generalized eigenvalues can be computed by calling function `gevalues`.

### Source

`gqz` uses the LAPACK routines `DGGES` and `ZGGES`. LAPACK is from http://www.netlib.org/lapack. The complex routines used by the package come from LAPACK 3.8.0.

### References

Anderson. E. and ten others (1999) LAPACK Users' Guide. Third Edition. SIAM.
Available on-line at http://www.netlib.org/lapack/lug/lapack_lug.html. See the section Eigenvalues, Eigenvectors and Generalized Schur Decomposition (http://www.netlib.org/lapack/lug/node56.html).

### See Also

`geigen`, `gevalues`

### Examples

    # Real matrices
    # example from NAG: http://www.nag.com/lapack-ex/node116.html
    # Find the generalized Schur decomposition with the real eigenvalues ordered to come first

    A <- matrix(c(  3.9, 12.5,-34.5,-0.5,
                    4.3, 21.5,-47.5, 7.5,
                    4.3, 21.5,-43.5, 3.5,
                    4.4, 26.0,-46.0, 6.0), nrow=4, byrow=TRUE)

    B <- matrix(c( 1.0, 2.0, -3.0, 1.0,
                   1.0, 3.0, -5.0, 4.0,
                   1.0, 3.0, -4.0, 3.0,
                   1.0, 3.0, -4.0, 4.0), nrow=4, byrow=TRUE)

    z <- gqz(A, B,"R")
    z

    # complexify
    A <- A+0i
    B <- B+0i
    z <- gqz(A, B,"R")
    z

[Package geigen version 2.3 Index]