# svd {base}

### Description

Compute the singular-value decomposition of a rectangular matrix.

### Usage

svd(x, nu = min(n, p), nv = min(n, p), LINPACK = FALSE) La.svd(x, nu = min(n, p), nv = min(n, p))

### Arguments

- x
- a numeric or complex matrix whose SVD decomposition is to be computed. Logical matrices are coerced to numeric.
- nu
- the number of left singular vectors to be computed. This must between
`n = nrow(x)`

. - nv
- the number of right singular vectors to be computed. This must be between
`p = ncol(x)`

. - LINPACK
- logical. Defunct and ignored (with a warning for true values).

### Details

The singular value decomposition plays an important role in many statistical techniques. `svd`

and `La.svd`

provide two slightly different interfaces.

Computing the singular vectors is the slow part for large matrices. The computation will be more efficient if `nu <= min(n, p)`

and `nv <= min(n, p)`

, and even more efficient if one or 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.

### Values

The SVD decomposition of the matrix as computed by LAPACK, \bold{X = U D V'}, where \bold{U} and \bold{V} are orthogonal, \bold{V'} means *V transposed*, and \bold{D} is a diagonal matrix with the singular values D[i,i]. Equivalently, \bold{D = U' X V}, which is verified in the examples, below.

The returned value is a list with components

For `La.svd`

the return value replaces `v`

by `vt`

, the (conjugated if complex) transpose of `v`

.

### References

Anderson. E. and ten others (1999) *LAPACK Users' Guide*. Third Edition. SIAM.

Available on-line at http://www.netlib.org/lapack/lug/lapack_lug.html.

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) *The New S Language*. Wadsworth & Brooks/Cole.

### Examples

Documentation reproduced from R 3.0.2. License: GPL-2.