lapgsvdst

Purpose

Compute the generalized singular value decomposition of a pair of real or complex general matrices.

Format

{ D1, D2, Z, U, V, Q } = lapgsvdst(A, B)
Parameters:
  • A (MxN matrix) – data
  • B (PxN matrix) – data
Returns:
  • D1 (Mx(K+L) matrix) – with singular values for A on diagonal.
  • D2 (Px(K+L) matrix) – with singular values for B on diagonal.
  • Z ((K+L)xN matrix) – partitioned matrix composed of a zero matrix and upper triangular matrix.
  • U (MxM matrix) – orthogonal transformation matrix.
  • V (PxP matrix) – orthogonal transformation matrix.
  • Q (NxN matrix) – orthogonal transformation matrix.

Remarks

  1. The generalized singular value decomposition of A and B is
\[U'AQ = D_1Z\]
\[V'BQ = D_2Z\]

where U, V, and Q are orthogonal matrices (see lapgsvdcst() and lapgsvdst()). Letting K+L = the rank of \(A|B\) then R is a (K+L)x(K+L) upper triangular matrix, D1 and D2 are Mx(K+L) and Px(K+L) matrices with entries on the diagonal, \(Z = [0R]\), and if \(M-K-L \geq 0\)

                  K L
D1 =         K  [ I 0 ]
             L  [ 0 C ]
     M - K - L  [ 0 0 ]
              K L
D2 =     P  [ 0 S ]
     P - L  [ 0 0 ]
              N-K-L   K    L
[ 0 R ] = K [   0    R11  R12 ]
          L [   0     0   R22 ]

or if \(M-K-L \lt 0\)

            K  M-K  K+L-M
D1 =   K  [ I   0     0  ]
     M-K  [ 0   0     0  ]
                  N-K-L  K   M-K  K+L-M
              K [   0   R11  R12   R13  ]
[ 0 R ] =   M-K [   0    0   R22   R23  ]
          K+L-M [   0    0    0    R33  ]
  1. Form the matrix
X = Q [ I 0   ]
      [ 0 R^-1 ]

then

\[A = U'^{-1}E_1X\]
\[B = V'^{-1}E_2X^{-1}\]

where

E1 = [ 0  D1 ]

E2 = [ 0  D2 ]

(3) The generalized singular value decomposition of A and B implicitly produces the singular value decomposition of \(AB^{-1}\):

\[AB^{-1} = UD_1D_2^{-1}V'\]

This procedure calls the LAPACK routines DGGSVD and ZGGSVD.

See also

Functions lapgsvds(), lapgsvdcst()