Next: swab, Previous: sun_r, Up: Internal Routines [Contents][Index]
svd, m, u2, s2, v2
Calculates the ’thin’ singular value decomposition of matrix
m
, which is easier to calculate and takes less storage
than the ’full’ singular value decomposition. m
must be
of a real (non-complex) data type.
If m
is an m-by-n matrix (has m rows and n columns), then
m = u # s # transpose(v)
is the ’full’
singular value decomposition of m
, where u
is an m-by-m orthonormal matrix, s
is an m-by-n matrix
with nonnegative numbers on the diagonal and zeros elsewhere, and
v
is an n-by-n orthonormal matrix. The diagonal entries
of s
are the singular values of m
In s2
is returned a vector containing the min(n,m)
singular values of m
in non-increasing order.
If m = n, then returned u2
and v2
have the
same dimensions as m
, and u2
is
u
, and v2
is v
. In that case,
the ’thin’ singular value decomposition is equal to the ’full’
singular value decomposition.
If m > n, then u2
is u
except that the
rightmost columns of u
beyond the first min(m,n) columns
are omitted. These correspond to the bottommost all-zero rows of
s
. u2
has the same dimensions as
m
. v2
is v
. Then
m = u2 # mdiagonal(s2) # transpose(v2
.
If m < n, then m = transpose(u2) #
mdiagonal(s2) # v2
. In that case, v2
is v
except that the bottommost rows of v
beyond the first min(m,n) rows are omitted. These correspond to the
rightmost all-zero columns of s
. v2
has the
same dimensions as m
. u2
is the transpose
of u
.
See also: mdiagonal, transpose
• svd Applications: |
Next: swab, Previous: sun_r, Up: Internal Routines [Contents][Index]