The pseudo inverse of the matrix is calculate through its SVD as V*E+*UT.
public Matrix3x3 PseudoInverse( ) { Matrix3x3 u, v; Vector3 e; SVD( out u, out e, out v ); return v * CreateDiagonal( e.Inverse( ) ) * u.Transpose( ); }