After this previous question, we want to perform a numerical approximation to the singular value decomposition $\mathbf A=\mathbf U\mathbf \Sigma\mathbf V^\top$. But we can operate only with matrix individual elements such as $a_{i,j}$ , $u_{n,k}$ , $v_{m,\ell}$ etc. (like we do in most programming languages). What shall be our step by step algorithm for performing SVD?
[Math] numerical step by step logic of SVD (singular value decomposition)
linear algebramatricesnumerical linear algebrasvd
Related Question
- [Math] Relation between eigenvectors of covariance matrix and right Singular vectors of SVD, Diagonal matrix
- [Math] SVD by QR and Choleski decomposition – What is going on
- [Math] how to compute the eigenvectors for spectral clustering from a singular value decomposition
- Using the singular value decomposition for calculating eigenvalues and eigenvectors of symmetric matrices
Best Answer
If you absolutely, genuinely, really, truly need to implement the singular value decomposition yourself (which I have already advised you not to do based on my reading of you), you will want to see the ALGOL code in Golub and Reinsch's classic paper. (Alternatively, see the EISPACK implementation.) There have been a lot of improvements to the basic two-part algorithm (bidiagonalize and apply a modified QR algorithm to the resulting bidiagonal matrix) since then, but not knowing your background in numerical linear algebra matters, I'll refrain from mentioning them for the time being.