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


15.5.606 svd

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


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