It's time to decompose a matrix with the singular value decomposition. In order to decompose a matrix, perform the following steps:
A = np.mat("4 11 14;8 7 -2") print "A ", A
The matrix we created looks like the following:
A [[ 4 11 14] [ 8 7 -2]]
svd
function.U, Sigma, V = np.linalg.svd(A, full_matrices=False) print "U" print U print "Sigma" print Sigma print "V" print V
The result is a tuple containing the two orthogonal matrices U
and V
on the left- and right-hand sides and the singular values of the middle matrix.
U [[-0.9486833 -0.31622777] [-0.31622777 0.9486833 ]] Sigma [ 18.97366596 9.48683298] V [[-0.33333333 -0.66666667 -0.66666667] [ 0.66666667 0.33333333 -0.66666667]]
diag
function. Multiply the three matrices. This is shown, as follows:print "Product ", U * np.diag(Sigma) * V
The product of the three matrices looks like the following:
Product [[ 4. 11. 14.] [ 8. 7. -2.]]
We decomposed a matrix and checked the result by matrix multiplication. We used the svd
function from the NumPy linalg
module (see decomposition.py
).
import numpy as np A = np.mat("4 11 14;8 7 -2") print "A ", A U, Sigma, V = np.linalg.svd(A, full_matrices=False) print "U" print U print "Sigma" print Sigma print "V" print V print "Product ", U * np.diag(Sigma) * V