Partial singular value decomposition algorithm ( Algorithm 32 )

Abstract The Partial Singular Value Decomposition (PSVD) subroutine computes a basis of the left and/or right singular subspace of a matrix corresponding to its smallest singular values. The dimension of the desired subspace may be fixed or depend on a given upper bound for those smallest singular values. As only a basis of the desired singular subspace is needed, the classical Singular Value Decomposition (SVD) algorithm is modified in three ways. First, the Householder transformations of the bidiagonalization are only applied to the base vectors of the desired singular subspace. Second, the bidiagonal is only partially diagonalized and third, the convergence rate of the iterative diagonalization is improved by an appropriate choice between QR and QL iteration steps. Depending on the gap, the desired numerical accuracy and the dimension of the desired subspace, PSVD can be three times faster than the classical SVD algorithm while the same accuracy can be maintained. The new algorithm can be successfully used in total least squares applications, in the computation of the null space of a matrix an in solving (non) homogeneous linear equations.