| SVD {matlib} | R Documentation | 
Singular Value Decomposition of a Matrix
Description
Compute the singular-value decomposition of a matrix X either by Jacobi
rotations (the default) or from the eigenstructure of X'X using
Eigen. Both methods are iterative.
The result consists of two orthonormal matrices, U, and V and the vector d
of singular values, such that X = U diag(d) V'.
Usage
SVD(
  X,
  method = c("Jacobi", "eigen"),
  tol = sqrt(.Machine$double.eps),
  max.iter = 100
)
Arguments
| X | a square symmetric matrix | 
| method | either  | 
| tol | zero and convergence tolerance | 
| max.iter | maximum number of iterations | 
Details
The default method is more numerically stable, but the eigenstructure method is much simpler. Singular values of zero are not retained in the solution.
Value
a list of three elements: d– singular values, U– left singular vectors, V– right singular vectors
Author(s)
John Fox and Georges Monette
See Also
svd, the standard svd function
Examples
C <- matrix(c(1,2,3,2,5,6,3,6,10), 3, 3) # nonsingular, symmetric
C
SVD(C)
# least squares by the SVD
data("workers")
X <- cbind(1, as.matrix(workers[, c("Experience", "Skill")]))
head(X)
y <- workers$Income
head(y)
(svd <- SVD(X))
VdU <- svd$V %*% diag(1/svd$d) %*%t(svd$U)
(b <- VdU %*% y)
coef(lm(Income ~ Experience + Skill, data=workers))
[Package matlib version 0.9.8 Index]