Time for action – decomposing a matrix
It's time to decompose a matrix with the SVD using the following steps:
First, create a matrix as shown in the following:
A = np.mat("4 11 14;8 7 -2") print("A\n", A)
The matrix we created looks like the following:
A [[ 4 11 14] [ 8 7 -2]]
Decompose the matrix with the
svd()
function:U, Sigma, V = np.linalg.svd(A, full_matrices=False) print("U") print(U) print("Sigma") print(Sigma) print("V") print(V)
Because of the
full_matrices=False
specification, NumPy performs a reduced SVD decomposition, which is faster to compute. The result is a tuple containing the two unitary matricesU
andV
on the left and right, respectively, 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]]
We do not actually have the middle matrix—we only have the diagonal values. The other values are all 0. Form the middle...