svd(x, nu = min(n, p), nv = min(n, p), LINPACK = FALSE)
La.svd(x, nu = min(n, p), nv = min(n, p))0 and n = nrow(x).0 and p = ncol(x).x, of
    length min(n, p).x, present if nu > 0.  Dimension c(n, nu).x, present if nv > 0.  Dimension c(p, nv).DGESDD and
  ZGESDD. LAPACK is from http://www.netlib.org/lapack and its guide is
  listed in the references.svd and La.svd provide two
  interfaces which differ in their return values.  Computing the singular vectors is the slow part for large matrices.
  The computation will be more efficient if both nu <= min(n,="" p)<="" code="">
  and nv <= min(n,="" p)<="" code="">, and even more so if both are zero.=>=>
  Unsuccessful results from the underlying LAPACK code will result in an
  error giving a positive error code (most often 1): these can
  only be interpreted by detailed study of the FORTRAN code but mean
  that the algorithm failed to converge.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
eigen, qr.
hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") }
X <- hilbert(9)[, 1:6]
(s <- svd(X))
D <- diag(s$d)
s$u %*% D %*% t(s$v) #  X = U D V'
t(s$u) %*% X %*% s$v #  D = U' X V
Run the code above in your browser using DataLab