Hi,
It is my understanding that the eigenvectors of a circulant matrix are given as
follows:
1,omega,omega^2,....,omega^{p-1}
where the matrix has dimension given by p x p and omega is one of p complex
roots of unity. (See Bellman for an excellent discussion on this).
The matrix created by the attached row and obtained using the following
commands
indicates no imaginary parts for the eigenvectors. It appears that the real
values are close, but not exactly so, and there is no imaginary part
whatsoever.
x<-scan("kinv.dat") #length(x) = 216
y<-x[c(109:216,1:108)]
X<-toeplitz(y)
eigen(X)$vectors
Note that the eigenvectors are correct, and they are indeed real, because X is
symmetric.
Is this a bug in R? Any insight if not, please!
Many thanks and best wishes!
This is unrelated, but can the R-help archive maintainers please not put e-mail
addresses in the archive? This would really help people like me who would like
to post using their professional e-mail addresses. Just stripping the e-mail
address from everything else would be great, or make it non-spammable by adding
some random number or something which would be obvious to anyone reading it
without the help of a machine. After all, why give spider programs more fodder?
Best wishes!
__________________________________________________
__________________________________________________
__________________________________________________
eigenvalues of a circulant matrix
2 messages · Globe Trotter, Brian Ripley
On Sun, 1 May 2005, someone who didn't give his name wrote:
It is my understanding that the eigenvectors of a circulant matrix are
given as follows:
1,omega,omega^2,....,omega^{p-1}
where the matrix has dimension given by p x p and omega is one of p complex
roots of unity. (See Bellman for an excellent discussion on this).
What is the relevance of this? Also, your reference is useless to us, which is important as this all hinges on your definitions.
The matrix created by the attached row and obtained using the following
commands indicates no imaginary parts for the eigenvectors. It appears
that the real values are close, but not exactly so, and there is no
imaginary part whatsoever.
x<-scan("kinv.dat") #length(x) = 216
y<-x[c(109:216,1:108)]
X<-toeplitz(y)
eigen(X)$vectors
We don't have "kinv.dat", but X is not circulant as usually defined.
Note that the eigenvectors are correct, and they are indeed real, because X is symmetric. Is this a bug in R? Any insight if not, please!
Well, first R calls LAPACK or EISPACK, so it would be a bug in one of those. But in so far as I understand you, X is a real symmetric matrix, and those have real eigenvalues and eigenvectors. I think you are confused about the meaning of Toeplitz and circulant. Compare http://mathworld.wolfram.com/CirculantMatrix.html http://mathworld.wolfram.com/ToeplitzMatrix.html and note that ?toeplitz says it computes the *symmetric* Toeplitz matrix. There is a very regretable tendency here for people to assume their lack of understanding is `a bug in R'.
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595