[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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:02:41 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
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
>