# SVD decomposition¶

numeric.linalg.svd(a)

Singular Value Decomposition.

Factorizes the matrix a into two unitary matrices U and Vh, and a 1-D array s of singular values (real, non-negative) such that a == U*S*Vh, where S is a suitably shaped matrix of zeros with main diagonal s.

Parameters

a(M, N) array_like

Matrix to decompose.

Returns

Undarray

Unitary matrix having left singular vectors as columns. Of shape (M,K).

sndarray

The singular values, sorted in non-increasing order. Of shape (K,), with K = min(M, N).

Vhndarray

Unitary matrix having right singular vectors as rows. Of shape (K,N).

Examples:

a = array([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,2,0,0,0]])
U,s,Vh = linalg.svd(a)
print s


Result:

>>> run script...
array([3.0, 2.23606797749979, 2.0, 0.0])