[petsc-users] slepc and overall phase of computed eigenvectors
Andrew Spott
andrew at spott.us
Wed Feb 4 13:12:31 CST 2015
Thanks.
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.
-Andrew
On Wed, Feb 4, 2015 at 11:49 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:
> El 04/02/2015, a las 19:32, Andrew Spott escribió:
>> 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.
>>
>> Why is that? And is there a way to prevent this overall phase factor?
>>
>> -Andrew
>>
> 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.
> 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
> Jose
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150204/95165e1b/attachment.html>
More information about the petsc-users
mailing list