Possible Duplicate:
Inverse of symmetric matrix $M = A A^\top$

I have a matrix, generated by the product of a non-square matrix with its own transpose:

M = A * A^T

I need the inverse of M, assuming det(M) != 0.

Given the nature of the matrix M, are there any specialised computational methods to find its inverse, prioritising precision over speed? Gauss-Jordan is prone to error, and I hope to find something nicer than and with comparable precision to adj(M^T)/det(M).

I've had a quick read of the Matrix Cookbook and of this page, but (at the present time of 1am) I'm struggling to see how it could help me.

In case it helps, I'm actually trying to calculate:

B = (A * A^T)^-1 * A
  • 1
    $\begingroup$ You might get lucky here, although there are more numerical analysts on mathSE than here, so I suggest you post there. $\endgroup$
    – davin
    Aug 15, 2012 at 0:27
  • $\begingroup$ thanks - what/where is mathSE? $\endgroup$ Aug 15, 2012 at 0:32

1 Answer 1


Actually, you don't need to calculate (A * A^T)^-1 to compute B. What you are trying to calculate is the left inverse of A^T, and it is give by

$B = \left(A A^T\right)^{-1} A = \left(A^T\right)^{-1_{L}} = \left(A^{TT} A^T \right)^{-1} * A^{TT}$

Since in your case the left inverse exists, it's equivalent to the pseudo-inverse of A^T, which can be computed by SVD. And since the left (right) singular vectors of a matrix are right (left) singular vectors of it's transpose or left/pseudo inverse, and a matrix and its transpose have the same singular values, but the pseudo-inverse has inversed singular values, the pseudo-inverse of A^T has the same singular vectors with A, and has the inversed singular values of A.

So, all you have to do is calculating the SVD of A, and inversing it's singular values, then you will get B.


Not the answer you're looking for? Browse other questions tagged .