I would make my own representation of the matrix:
C=QDQ^-1
If your matrix is really positive semi-definite, then all eigenvalues (entries on the diagonal D) should be non-negative. (This is probably a test that your factor analysis algorithm also does to see if the matrix is positive semidefinite.)
If you suffer from numerical problems, some of the eigenvalues are likely to be just under zero. Try setting these entries to zero, calculate QDQ^-1 to get a new, adjusted C, and then feed it to the factor analysis algorithm.
On the other hand, if you find that your matrix C has really negative eigenvalues, then you know that you are mistaken somewhere in the construction of C.
source share