Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am writing a routine to return the Moore-Penrose inverse of a rectangular matrix.

Currently am computing the Moore-Penrose inverse using SVD, i.e., if the SVD is given by $A = \sum_{i=1}^r \lambda_i u_i v_i^T$, with $\lambda_i > 0 $ then $A^{+} = \sum_{i=1}^{r} \frac{1}{\lambda_i} v_i u_i^T$. However, if SVD computation does not converge, I will have to throw an exception, I would prefer to compute the pseudo-inverse using some non-iterative method.

I have come across the formula that $A^{+} = H(H^2)^-A^T$, where $H=A^TA$ and $(H^2)^-$ is any generalized inverse of $H^2$, and I can compute a generalized inverse using elementary row operations, this does provide a way. However, I am not fond of this method because $H^2$'s condition number is $A$'s condition number raised to the fourth power.

Do I have any other alternative?

share|cite|improve this question
When does SVD not converge? I haven't encountered any cases where SVD doesn't converge. – Shiyu Jun 22 '11 at 15:32
Unfortunately OP has not been able to share an example of a matrix that chokes SVD... – J. M. Oct 19 '11 at 0:26
up vote 0 down vote accepted

You can compute a complete orthogonal decomposition using two QR decompositions. See

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.