Singular Value Decomposition Task: Difference between revisions

From GM-RKB
Jump to navigation Jump to search
No edit summary
No edit summary
Line 36: Line 36:
</math>
</math>
** <math>\operatorname{SVD}\left(\begin{bmatrix}4 & 3\\8 & 6\end{bmatrix}\right) \Rightarrow  \begin{bmatrix}\frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}}\\ \frac{2}{\sqrt{5}} & \frac{-1}{\sqrt{5}}\end{bmatrix} \begin{bmatrix}\sqrt{125} & 0\\0 & 0\end{bmatrix} \begin{bmatrix}0.8 & 0.6\\0.6 & -0.8\end{bmatrix}</math>
** <math>\operatorname{SVD}\left(\begin{bmatrix}4 & 3\\8 & 6\end{bmatrix}\right) \Rightarrow  \begin{bmatrix}\frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}}\\ \frac{2}{\sqrt{5}} & \frac{-1}{\sqrt{5}}\end{bmatrix} \begin{bmatrix}\sqrt{125} & 0\\0 & 0\end{bmatrix} \begin{bmatrix}0.8 & 0.6\\0.6 & -0.8\end{bmatrix}</math>
** >>> a = np.random.randn(9, 6) + 1j*np.random.randn(9, 6)
Reconstruction based on full SVD:
>>> U, s, V = np.linalg.svd(a, full_matrices=True)
>>> U.shape, V.shape, s.shape
((9, 9), (6, 6), (6,))
>>> S = np.zeros((9, 6), dtype=complex)
>>> S[:6, :6] = np.diag(s)
>>> np.allclose(a, np.dot(U, np.dot(S, V)))
True
Reconstruction based on reduced SVD:
>>>
>>> U, s, V = np.linalg.svd(a, full_matrices=False)
>>> U.shape, V.shape, s.shape
((9, 6), (6, 6), (6,))
>>> S = np.diag(s)
>>> np.allclose(a, np.dot(U, np.dot(S, V)))
True
* <B>Counter-Example(s):</B>
* <B>Counter-Example(s):</B>
** a [[QR Decomposition Task]].
** a [[QR Decomposition Task]].

Revision as of 13:12, 12 January 2016

A Singular Value Decomposition Task is a matrix decomposition task where matrix [math]\displaystyle{ M }[/math] requires an SVD decomposition, [math]\displaystyle{ UΣV^T }[/math] (with [math]\displaystyle{ U }[/math] being an orthonormal matrix, [math]\displaystyle{ \Sigma }[/math] being a nonnegative diagonal matrix, and [math]\displaystyle{ V^T }[/math] being an orthonormal matrix.)



References

2015

2009

2001

1997

1990

1981