<span id="mailbox-conversation"><div>Thanks.</div>
<div><br></div>
<div>As an aside, another way that seems to work is to set the initial vector to a random REAL vector. It seems to also fix this problem. Though I don’t know how robust it is.</div>
<div><br></div>
<div>-Andrew</div></span><div class="mailbox_signature"><br></div>
<br><br><div class="gmail_quote"><p>On Wed, Feb 4, 2015 at 11:49 AM, Jose E. Roman <span dir="ltr"><<a href="mailto:jroman@dsic.upv.es" target="_blank">jroman@dsic.upv.es</a>></span> wrote:<br></p><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>El 04/02/2015, a las 19:32, Andrew Spott escribió:
<br><br>> When I compute the eigenvectors of a real symmetric matrix, I’m getting eigenvectors that are rotated by approximately pi/4 in the complex plane. So what could be purely real eigenvectors have some overall phase factor.
<br>>
<br>> Why is that? And is there a way to prevent this overall phase factor?
<br>>
<br>> -Andrew
<br>>
<br><br>Eigenvectors are normalized to have 2-norm equal to one. Complex eigenvectors may be scaled by any complex scalar of modulus 1. When computing eigenvectors of a real symmetric matrix in complex arithmetic, the solver cannot control this because the matrix is not checked to be real.
<br><br>Since you know it is real, you could do a postprocessing that scales the eigenvectors as you wish. This is done in function FixSign() in this example: http://slepc.upv.es/documentation/current/src/nep/examples/tutorials/ex20.c.html
<br><br>Jose
<br></blockquote></div><br>