gsvd {geigen}R Documentation

Generalized Singular Value Decomposition

Description

Computes the generalized singular value decomposition of a pair of matrices.

Usage

gsvd(A,B)

Arguments

A

a matrix with mm rows and nn columns.

B

a matrix with pp rows and nn columns.

Details

The matrix A is a mm-by-nn matrix and the matrix B is a pp-by-nn matrix. This function decomposes both matrices; if either one is complex than the other matrix is coerced to be complex.

The Generalized Singular Value Decomposition of numeric matrices AA and BB is given as

A=UD1[0R]QTA = U D_1 [0\, R] Q^T

and

B=VD2[0R]QTB = V D_2 [0\, R] Q^T

where

UU

an m×mm\times m orthogonal matrix.

VV

a p×pp\times p orthogonal matrix.

QQ

an n×nn\times n orthogonal matrix.

RR

an rr-by-rr upper triangular non singular matrix and the matrix [0R][0\, R] is an rr-by-nn matrix. The quantity rr is the rank of the matrix (AB)\left( \begin{array}{c} A \\B \end{array} \right) with rnr \le n.

D1D_1,D2D_2

are quasi diagonal matrices and nonnegative and satisfy D1TD1+D2TD2=ID_1^T D_1 + D_2^T D_2 = I. D1D_1 is an mm-by-rr matrix and D2D_2 is a pp-by-rr matrix.

The Generalized Singular Value Decomposition of complex matrices AA and BB is given as

A=UD1[0R]QHA = U D_1 [0\, R] Q^H

and

B=VD2[0R]QHB = V D_2 [0\, R] Q^H

where

UU

an m×mm\times m unitary matrix.

VV

a p×pp\times p unitary matrix.

QQ

an n×nn\times n unitary matrix.

RR

an rr-by-rr upper triangular non singular matrix and the matrix [0R][0\, R] is an rr-by-nn matrix. The quantity rr is the rank of the matrix (AB)\left( \begin{array}{c} A \\B \end{array} \right) with rnr \le n.

D1D_1,D2D_2

are quasi diagonal matrices and nonnegative and satisfy D1TD1+D2TD2=ID_1^T D_1 + D_2^T D_2 = I. D1D_1 is an mm-by-rr matrix and D2D_2 is a pp-by-rr matrix.

For details on this decomposition and the structure of the matrices D1D_1 and D2D_2 see http://www.netlib.org/lapack/lug/node36.html.

Value

The return value is a list containing the following components

A

the upper triangular matrix or a part of RR.

B

lower part of the triangular matrix RR if k+l>mk+l>m (see below).

m

number of rows of AA.

k

rlr{-}l. The number of rows of the matrix RR is k+lk{+}l. The first kk generalized singular values are infinite.

l

effective rank of the input matrix BB. The number of finite generalized singular values after the first kk infinite ones.

alpha

a numeric vector with length nn containing the numerators of the generalized singular values in the first (k+l)(k{+}l) entries.

beta

a numeric vector with length nn containing the denominators of the generalized singular value in the first (k+l)(k{+}l) entries.

U

the matrix UU.

V

the matrix VV.

Q

the matrix QQ.

For a detailed description of these items see http://www.netlib.org/lapack/lug/node36.html. Auxiliary functions are provided for extraction and manipulation of the various items.

Source

gsvd uses the LAPACK routines DGGSVD3 and ZGGSVD3 from Lapack 3.8.0. LAPACK is from http://www.netlib.org/lapack. The decomposition is fully explained in http://www.netlib.org/lapack/lug/node36.html.

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 Generalized Eigenvalue and Singular Value Problems (http://www.netlib.org/lapack/lug/node33.html) and the section Generalized Singular Value Decomposition (GSVD) (http://www.netlib.org/lapack/lug/node36.html).

See Also

gsvd.aux

Examples

A <- matrix(c(1,2,3,3,2,1,4,5,6,7,8,8), nrow=2, byrow=TRUE)
B <- matrix(1:18,byrow=TRUE, ncol=6)
A
B

z <- gsvd(A,B)
z

[Package geigen version 2.3 Index]