While real symmetric matrices have real eigenvalues, their eigenvectors do not have to be real. If I am interpreting the conversation correctly, THIS math.stackexchange thread seems to suggest that it is, nonetheless, possible to choose a basis such that ALL of the eigenvectors are real. Is this true?

If so, how would I do this?

As a concrete example, I have a 448 x 448 real symmetric matrix. I compute the eigenvalues and eigenvectors using MATLAB and 24 of the eigenvectors that it returns are complex, all the rest are real. How can I make these 24 complex eigenvectors real?

  • $\begingroup$ Eigenvectors are vectors, not real numbers. $\endgroup$ – Rick Sanchez Apr 19 '16 at 1:17
  • 1
    $\begingroup$ @RickSanchez real vectors = vectors whose entries are all real. $\endgroup$ – Robert Israel Apr 19 '16 at 1:18
  • $\begingroup$ I see. I've never heard this term before. $\endgroup$ – Rick Sanchez Apr 19 '16 at 1:20

Yes: if $\lambda$ is a real eigenvalue of a real matrix $A$, there will be a basis of $\text{ker}(A - \lambda I)$ consisting of real eigenvectors.

I don't know why Matlab would return non-real eigenvectors for a real symmetric matrix. Are you sure it's exactly symmetric, no asymmetry caused by roundoff error or other processes? nnz(A - A') returns 0?

  • $\begingroup$ You were right, it wasn't quite symmetric due to numerical errors. I corrected it and all of the eigenvectors returned are real valued. Thanks! $\endgroup$ – okj Apr 19 '16 at 16:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.