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
The svd
command uses the LINPACK routine ZSVDC
.
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] Dongarra, J.J., J.R. Bunch, C.B. Moler, and G.W. Stewart, LINPACK Users' Guide, SIAM, Philadelphia, 1979.
[ Previous | Help Desk | Next ]