Next: swab, Previous: sun_r, Up: Internal Routines [Contents][Index]

`svd, `

`m`, `u2`, `s2`, `v2`

Calculates the ’thin’ singular value decomposition of matrix

, 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.
`m`

If

is an m-by-n matrix (has m rows and n columns), then
`m`

is the ’full’
singular value decomposition of `m` = `u` # `s` # transpose(`v`)

, where `m`

is an m-by-m orthonormal matrix, `u`

is an m-by-n matrix
with nonnegative numbers on the diagonal and zeros elsewhere, and
`s`

is an n-by-n orthonormal matrix. The diagonal entries
of `v`

are the singular values of `s``m`

In

is returned a vector containing the min(n,m)
singular values of `s2`

in non-increasing order.
`m`

If m = n, then returned

and `u2`

have the
same dimensions as `v2`

, and `m`

is
`u2`

, and `u`

is `v2`

. In that case,
the ’thin’ singular value decomposition is equal to the ’full’
singular value decomposition.
`v`

If m > n, then

is `u2`

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
`u`

. `s`

has the same dimensions as
`u2`

. `m`

is `v2`

. Then
`v`

.
`m` = `u2` # mdiagonal(`s2`) # transpose(`v2`

If m < n, then

. In that case, `m` = transpose(`u2`) #
mdiagonal(`s2`) # `v2`

is `v2`

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 `v`

. `s`

has the
same dimensions as `v2`

. `m`

is the transpose
of `u2`

.
`u`

See also: mdiagonal, transpose

• svd Applications: |

Next: swab, Previous: sun_r, Up: Internal Routines [Contents][Index]