bug-gsl
[Top][All Lists]

## Re: [Bug-gsl] sign convention for eigenvectors in gsl_eigen_hermv

 From: Patrick Alken Subject: Re: [Bug-gsl] sign convention for eigenvectors in gsl_eigen_hermv Date: Tue, 04 Feb 2014 22:04:55 -0700 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

```In fact, since you are working with complex matrices, it is quite
possible you could find eigenvectors with complex scale factors of unit
magnitude. IE if you are expecting the vector v, you could very well get
exp(i*phi) * v instead, for any angle phi, since |exp(i phi)| = 1.

On 02/04/2014 10:02 PM, Patrick Alken wrote:
> Hello,
>
>   There really is no "sign convention" regarding eigenvectors, since if
> v is an eigenvector of a matrix, any scalar multiple of v is also an
> eigenvector. gsl_eigen_hermv guarantees that the eigenvectors are
> normalized to unit magnitude, but of course the negative of the computed
> vector is still a valid eigenvector with unit magnitude.
>
> I suspect you will find that any eigenvector software will exhibit the
> same behavior. There really is no way to determine a standard sign
> convention for eigenvectors.
>
> On 02/04/2014 06:50 AM, Walter Hahn wrote:
>> Dear all,
>>
>> after using the procedure gsl_eigen_hermv to diagonalize a matrix, I
>> suspect that the sign convention for the eigenvectors should be
>> reconsidered.
>>
>> More specifically, I diagonalize a matrix which has only a few non-zero
>> entries, namely at m(2i,2i+1) and m(2i+1,2i) for all i. In my case, I
>> diagonalize a 8x8 matrix with real entries, e.g. 1.0. In other words,
>> the matrix represents the tensor product of the first Pauli matrix four
>> times with itself.
>>
>> The eigenvectors should be of the following form (not normalized):
>> v1=(1,1,0,0,0....)
>> v2=(-1,1,0,0,0,...),
>> other eigenvectors can be obtained by shifting the non-zero coefficients
>> of v1 and v2 by two places to the right.
>>
>> However, diagonalizing the 8x8 matrix described above, I obtain the
>> eigenvectors as described above exept the last one which is
>> v8=(0,0,0,0,0,0,1,-1) instead of (0,0,0,0,0,0,-1,1), i.e., multiplied
>> with (-1). Therefore, I think that the sign convention is either not
>> implemented correctly or the convention used is not broad enough.
>>
>> Please find in the attachment to this e-mail a simple compilable code
>> which demonstrates this problem.
>>
>> Thank you,
>> Walter
>>
>
>

```