# SVD: Singular Value Decomposition of a Matrix In matlib: Matrix Functions for Teaching and Learning Linear Algebra and Multivariate Statistics

## Description

Compute the singular-value decomposition of a matrix X from the eigenstructure of X'X. The result consists of two orthonormal matrices, U, and V and the vector d of singular values, such that X = U diag(d) V'. Singular values of zero are not retained in the solution.

## Usage

 `1` ```SVD(X, tol = sqrt(.Machine\$double.eps)) ```

## Arguments

 `X` a square symmetric matrix `tol` tolerance passed to `QR`

## Value

a list of three elements: `d`– singular values, `U`– left singular vectors, `V`– right singular vectors

## Author(s)

John Fox and Georges Monette

`svd`, the standard svd function
`Eigen`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14``` ```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)) ```