Keywords: slug

Next: Further Details: Error Bounds Up: Accuracy and Stability Previous: Error Bounds for the

# Error Bounds for the Singular Value Decomposition

The singular value decomposition (SVD) of a real m-by-n matrix A is defined as follows. Let . The SVD of A is ( in the complex case), where U and V are orthogonal (unitary) matrices and is diagonal, with . The are the singular values of A and the leading r columns of U and of V the left and right singular vectors, respectively. The SVD of a general matrix is computed by PxGESVD (see subsection 3.2.3).

The approximate error bounds for the computed singular values are
The approximate error bounds for the computed singular vectors and , which bound the acute angles between the computed singular vectors and true singular vectors and , are
These bounds can be computing by the following code fragment:

          EPSMCH = PSLAMCH( ICTXT, 'E' )
    *     Compute singular value decomposition of A
    *     The singular values are returned in S
    *     The left singular vectors are returned in U
    *     The transposed right singular vectors are returned in VT
          CALL PSGESVD( 'V', 'V', M, N, A, IA, JA, DESCA, S, U, IU, JU,
         $              DESCU, VT, IVT, JVT, DESCVT, WORK, LWORK, INFO )
          IF( INFO.GT.0 ) THEN
             PRINT *,'PSGESVD did not converge'
          ELSE IF( MIN( M, N ).GT.0 ) THEN
             SERRBD  = EPSMCH * S( 1 )
    *        Compute reciprocal condition numbers for singular vectors
             CALL SDISNA( 'Left', M, N, S, RCONDU, INFO )
             CALL SDISNA( 'Right', M, N, S, RCONDV, INFO )
             DO 10 I = 1, MIN( M, N )
                VERRBD( I ) = EPSMCH*( S( 1 ) / RCONDV( I ) )
                UERRBD( I ) = EPSMCH*( S( 1 ) / RCONDU( I ) )
    10       CONTINUE
          END IF

For example, if and
then the singular values, approximate error bounds, and true errors are given below.

- Further Details: Error Bounds for the Singular Value Decomposition