next up previous contents index
Next: Further Details: Error Bounds Up: Accuracy and Stability Previous: Singular Eigenproblems   Contents   Index


Error Bounds for the Generalized Singular Value Decomposition

The generalized (or quotient) singular value decomposition of an m-by-n matrix A and a p-by-n matrix B is the pair of factorizations

\begin{displaymath}
A = U \Sigma_1 [0,R] Q^T \; \; {\rm and} \; \;
B = V \Sigma_2 [0,R] Q^T
\end{displaymath}

where U, V, Q, R, $\Sigma_1$ and $\Sigma_2$ are defined as follows.

The generalized singular value decomposition is computed by driver routine xGGSVD (see section 2.3.5.3). We will give error bounds for the generalized singular values in the common case where $ \left( \begin{array}{c}
A \\
B
\end{array} \right) $ has full rank r=n. Let $\hat{\alpha}_i$ and $\hat{\beta}_i$ be the values of $\alpha_i$ and $\beta_i$, respectively, computed by xGGSVD. The approximate error bound4.10for these values is

\begin{displaymath}
\vert \hat{\alpha}_i - \alpha_i \vert +
\vert \hat{\beta}_i - \beta_i \vert \leq {\tt SERRBD} \; \; .
\end{displaymath}

Note that if $\beta_i$ is close to zero, then a true generalized singular value $\alpha_i / \beta_i$ can differ greatly in magnitude from the computed generalized singular value $\hat{\alpha}_i / \hat{\beta}_i$, even if SERRBD is close to its minimum $\epsilon$.

Here is another way to interpret SERRBD: if we think of $\alpha_i$ and $\beta_i$ as representing the subspace $\cal S$ consisting of the straight line through the origin with slope $\alpha_i / \beta_i$, and similarly $\hat{\alpha}_i$ and $\hat{\beta}_i$ representing the subspace $\hat{\cal S}$, then ${\tt SERRBD}$ bounds the acute angle between $\cal S$ and $\hat{\cal S}$. Note that any two lines through the origin with nearly vertical slopes (very large $\alpha / \beta$) are close together in angle. (This is related to the chordal distance in section 4.10.1.)

SERRBD can be computed by the following code fragment, which for simplicity assumes $m \geq n$. (The assumption r=n implies only that $p+m \geq n$. Error bounds can also be computed when $p+m \geq n > m$, with slightly more complicated code.)

      EPSMCH = SLAMCH( 'E' )
*     Compute generalized singular values of A and B
      CALL SGGSVD( 'N', 'N', 'N', M, N, P, K, L, A, LDA, B,
     $             LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ,
     $             WORK, IWORK, INFO )
*     Compute rank of [A',B']'
      RANK = K+L
      IF( INFO.GT.0 ) THEN
         PRINT *,'SGGSVD did not converge'
      ELSE IF( RANK.LT.N ) THEN
         PRINT *,'[A**T,B**T]**T not full rank'
      ELSE IF ( M .GE. N .AND. N .GT. 0 ) THEN
*        Compute reciprocal condition number RCOND of R
         CALL STRCON( 'I', 'U', 'N', N, A, LDA, RCOND, WORK, IWORK,
     $                INFO )
         RCOND = MAX( RCOND, EPSMCH )
         SERRBD = EPSMCH / RCOND
      END IF

For example4.11, if ${\tt SLAMCH('E')} = 2^{-24} = 5.961 \cdot 10^{-8}$,

\begin{displaymath}
A = \left( \begin{array}{ccc} 1 & 2 & 3 \\ 3 & 2 & 1 \\ 4 & ...
...egin{array}{ccc} -2 & -3 & 3 \\ 4 & 6 & 5 \end{array} \right)
\end{displaymath}

then, to 4 decimal places,

\begin{displaymath}
\left( \begin{array}{c} \alpha_1 \\ \alpha_2 \\ \alpha_3 \en...
...ft( \begin{array}{c} 0 \\ .6053 \\ .9968 \end{array} \right) ,
\end{displaymath}

${\tt SERRBD} = 1.4 \cdot 10^{-6}$, and the true errors are 0, $4.3 \cdot 10^{-7}$ and $1.5 \cdot 10^{-7}$.




next up previous contents index
Next: Further Details: Error Bounds Up: Accuracy and Stability Previous: Singular Eigenproblems   Contents   Index
Susan Blackford
1999-10-01