I am a Software Engineer from Mumbai, India. In love with Functional programming ( precisely Elixir). Love to share the knowledge that I learn while developing things.
The ticket-sales matrix is a clean way into this. One thing I would flag for anyone taking it to larger matrices: forming AᵀA explicitly squares the condition number, so for anything ill-conditioned, running Eigen's JacobiSVD or BDCSVD on A directly is more numerically stable than going through the eigen-decomposition of AᵀA. Did you stay with the AᵀA route mainly for the clarity of the derivation?
Yes, exactly. I used the AᵀA route mainly to make the mathematical derivation easier to understand and connect SVD with eigenvalues and eigenvectors. For practical applications, I would use Eigen’s JacobiSVD or BDCSVD directly on A. Thanks for highlighting it!
Kartik N V J K
The ticket-sales matrix is a clean way into this. One thing I would flag for anyone taking it to larger matrices: forming AᵀA explicitly squares the condition number, so for anything ill-conditioned, running Eigen's JacobiSVD or BDCSVD on A directly is more numerically stable than going through the eigen-decomposition of AᵀA. Did you stay with the AᵀA route mainly for the clarity of the derivation?