I have a matrix $A$ and I'm interested in its smallest singular value, i.e. the smallest eigenvalue of $B = A A^T$ (which is clearly positive). Using common algorithms on $B$ to solve the eigenvalue problem for symmetric matrices I sometimes get negative smallest eigenvalues, clearly impossible. I think this is due to approximation errors in the numerical process which accumulate (my matrices have a bad conditioning).
Is there an algorithm that I can use to converge to the smallest eigenvalue of $B$, whose precision improves with the number of iterations, and which only returns positive answers?