# Singular Value Decomposition

For an m-by-n matrix A with m >= n, the singular value decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'.

The singular values, sigma[k] = S[k][k], are ordered so that sigma[0] >= sigma[1] >= ... >= sigma[n-1].

The singular value decompostion always exists, so MatSVD(a()) will never fail. The matrix condition number and the effective numerical rank can be computed from this decomposition.

### svd = MatSVD(a())

- This function returns an object which contains the singular value decomposition Structure to access U, S and V. The following funcions return the results of the decomposition.

### c = MatSVDCond(svd)

- Two norm condition number.

### c = MatSVDRank(svd)

- Effective numerical matrix rank.

- Two norm.

### c() = MatSVDSingularValues(svd)

- Return the one-dimensional array of singular values.

### c() = MatSVDLeftSingular(svd)

- Return the left singular vectors.

### c() = MatSVDRightSingular(svd)

- Return the right singular vectors.

### c() = MatSVDSingularDiagonal(svd)

- Return the diagonal matrix of singular values.