The most well-known and widely used algorithm for computing the Singular Value Decomposition (SVD) A --U ~ V T of an m x n rectangular matrix A is the Golub-Reinsch algorithm (GR-SVD). In this paper, an improved version of the original GR-SVD algorithm is presented. The new algorithm works best for matrices with m >> n, but is more efficient even when m is only slightly greater than n (usually when m ~ 2n) and in some cases can achieve as much as 50 percent savings. If the matrix U ~s exphcltly desired, then n 2 extra storage locations are required, but otherwise no extra storage is needed. The two main modifications are: (1) first triangularizing A by Householder transformations before bldmgonahzing it (thin idea seems to be widely known among some researchers in the field, but as far as can be determined, neither a detailed analysis nor an lmplementatmn has been published before), and (2) accumulating the left Givens transformations in GR-SVD on an n x n array instead of on an m x n array. A PFORT-verified FORTRAN Implementation m included. Comparisons with the EISPACK SVD routine are given.
[1]
G. Golub,et al.
Linear least squares solutions by householder transformations
,
1965
.
[2]
G. Golub,et al.
Numerical techniques in mathematical programming
,
1970
.
[3]
R. Hanson.
A Numerical Method for Solving Fredholm Integral Equations of the First Kind Using Singular Values
,
1971
.
[4]
W. E. Gentleman.
Least Squares Computations by Givens Transformations Without Square Roots
,
1973
.
[5]
H. Andrews,et al.
Singular value decompositions and digital image processing
,
1976
.
[6]
T. Chan.
On computing the singular value decomposition
,
1977
.
[7]
B. AfeArd.
CALCULATING THE SINGULAR VALUES AND PSEUDOINVERSE OF A MATRIX
,
2022
.