Originally Posted by
JakeD Since if $\displaystyle AA^T = B$ implies $\displaystyle B$ is symmetric, there exists an orthogonal matrix $\displaystyle P$ such that $\displaystyle P^TBP = \Lambda,$ and $\displaystyle \Lambda$ is a diagonal matrix with the eigenvalues of $\displaystyle B$ along the diagonal and the columns of $\displaystyle P$ are the eigenvectors of $\displaystyle B$. $\displaystyle P^TBP = \Lambda$ is called a unitary transformation. Since $\displaystyle P$ is orthogonal, $\displaystyle PP^T = I$ and thus $\displaystyle B = PP^T B PP^T = P\Lambda P^T.$
Further, since $\displaystyle x^TBx = x^TAA^Tx = (A^Tx)^T A^Tx > 0$ when $\displaystyle B$ is nonsingular, $\displaystyle B$ is positive definite and thus has positive eigenvalues. Thus $\displaystyle \Lambda = D D^T$ where $\displaystyle D$ has the square roots of the eigenvalues of $\displaystyle B$ on the diagonal.
Then $\displaystyle B = P\Lambda P^T = PD D^TP^T = A A^T$ where $\displaystyle A = PD$. So the problem is reduced to finding the eigenvalues and eigenvectors of a symmetric matrix $\displaystyle B.$ There are efficient numerical methods for this.