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.

Tue May 13 09:21:01 EDT 1997