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).La.svd the return value replaces v by vt, the
  (conjugated if complex) transpose of v.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)
  and nv <= min(n, p), 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.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