MATLAB Function Reference
svd

Singular value decomposition

Syntax

• ```s = svd(X)
[U,S,V] = svd(X)
[U,S,V] = svd(X,0)
```

Description

The `svd` command computes the matrix singular value decomposition.

```s = svd(X) ``` returns a vector of singular values.

```[U,S,V] = svd(X) ``` produces a diagonal matrix `S` of the same dimension as `X`, with nonnegative diagonal elements in decreasing order, and unitary matrices `U` and `V` so that `X` `=` `U*S*V'.`

```[U,S,V] = svd(X,0) ``` produces the "economy size" decomposition. If `X` is `m`-by-`n` with `m` > `n`, then `svd` computes only the first `n` columns of `U` and `S` is `n`-by-`n`.

Examples

For the matrix

• ```X =
1    2
3    4
5    6
7    8
```

the statement

• ````[U,S,V]` `=` ```svd(X)
``````

produces

• ```U =
-0.1525   -0.8226   -0.3945   -0.3800
-0.3499   -0.4214    0.2428    0.8007
-0.5474   -0.0201    0.6979   -0.4614
-0.7448    0.3812   -0.5462    0.0407

S =
14.2691         0
0    0.6268
0         0
0         0

V =
-0.6414     0.7672
-0.7672    -0.6414
```

The economy size decomposition generated by

• ````[U,S,V]` `=` ```svd(X,0)
``````

produces

• ```U =
-0.1525   -0.8226
-0.3499   -0.4214
-0.5474   -0.0201
-0.7448    0.3812
S =
14.2691         0
0    0.6268
V =
-0.6414    0.7672
-0.7672   -0.6414
```

Algorithm

`svd` uses LAPACK routines to compute the singular value decomposition.

 Matrix Routine Real `DGESVD` Complex `ZGESVD`

Diagnostics

If the limit of 75 QR step iterations is exhausted while seeking a singular value, this message appears:

• ```Solution will not converge.
```

References

[1]  Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide (http://www.netlib.org/lapack/lug/lapack_lug.html), Third Edition, SIAM, Philadelphia, 1999.

 surfnorm svds