Is there a faster way to calculate a pseudo-inverse of a matrix than using SVD that is as numerically stable as with SVD?

1.9k Views Asked by At

Is there a faster way to calculate a pseudo-inverse of a matrix than using SVD that is as numerically stable as using SVD?

1

There are 1 best solutions below

7
On BEST ANSWER

Since the dominant term in the pseudo-inverse is the smallest nonzero singular value of the matrix, this would require stably producing the singular values (or approximate singular values) of the matrix. While this can be done without doing the full SVD, it can never be as stable, since any error in the smallest singular value would lead to large errors in the pseudoinverse.

I should note that there are ways to calculate the pseudoinverse without the SVD, if you know additional structure. For example, if $A$ is invertible, the pseudoinverse is the inverse, so you can just use LU factorization. Or if $A$ has full column rank, then you could use the QR factorization.