Hi, today I want to talk about the stability of SVD and Eigen Decomposition in numerical linear algebra perspective.
The purpose of SVD and Eigen Decomposition is to simplify the original matrix (say, matrix A) so that we can easily study the properties of the matrix. But as we try to use computers to do the calculation, there comes the difference between SVD and Eigen Decomposition.
No matter what the matrix is, we can always trust the result of SVD. This means SVD is stable. And SVD always guarantees the source matrix can be diagonalized.
For Eigen Decomposition, if the source matrix is symmetric then we can trust the computed eigen values and we can say that the source matrix can be always diagonalized. But, if the source matrix is any arbitrary matrix which is not symmetric, we cannot say for sure the eigen values computed are correct. It depends on the condition number of the source matrix, so we should first check the condition number. Also, we cannot guarantee that the source matrix can always be diagonalized.
Should we not use the Eigen Decomposition of math libraries out there? I would recommend keep using the math libraries. They are the best thing we can do for now. But we should remember that we cannot always trust the Eigen Decomposition since it is already ill-posed problem (the method is good). If the result is not what you want, it could be because the Eigen Decomposition is not stable for arbitrary matrix.