I figured out that the levels degenerate in energy tend to give this conundrum. I am unsure how to fix it at this point but there is some clue on where the issue is coming from.
Need Help Understanding a peculiar result when comparing MATLAB's Eigenvectors to my own
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello everyone, I am working on a simulation and have ran into an issue. To begin I am starting off with a 2D tight binding Hamiltonian on a NxN square lattice. That's more physics than MATLAB so we can think of states of this system as being represented by N^2x1 column vectors and index site (i,j) by the x=N*(i-1)+j-th component of this vector. This means we label sites sequentially through each row.
The tight binding Hamiltonian we want is for only nearest neighbor hopings with periodic boundary conditions. I'll just attach code which generates this but it is basically two diagonals offset from the main diagonal. The boundary conditions are a pain to code, but I know the energies I get are correct since I compared with the analytic solution.
The actual question starts here. Say we obtained our solutions with: [V,E]=eig(T) where T is the tight binding hamiltonian. We know:
Now this model is exactly solvable via a discrete fourier transform, which can be represented by the matrix: . k corresponds to the wave vectors in the first BZ zone and r the lattice positions relative to the center (don't worry about this if it doesn't make sense).
The issue I have is the following relation also holds:
Where E' is some permutation of the components of E. What I then investigated was the following products (just written in MATLAB code):
fix( V(:,l).' *Exp *10^3)/10^3;
I used fix so I could look at the sparse matrix and easily see where these guys are nonzero. We should expect this to be 1 for a single column of Exp and zero everywhere else, but this is not what I get! I often get 4 or so nonzero values!
I understand MATLAB can multiply it's eigenvectors by any constant, so they may not be exactly the same as what I have here but the issue is they should still be orthagonal. Hopefully someone has some clue on why this thing is not turning out how I expect it to since I am banging my head on my wall at this point.
3 comentarios
Christine Tobler
el 16 de Feb. de 2021
Editada: Christine Tobler
el 16 de Feb. de 2021
I'd expect this would happen if you have multiple identical eigenvalues. In that case, any linear combination of the related eigenvectors is also an eigenvector, and the eigenvectors returned by MATLAB are likely to be some different basis of that eigenspace than the one you've computed. (I'm assuming the input matrix is hermitian, yes? Otherwise there's no guarantee that the computed eigenvectors are orthogonal).
Respuestas (0)
Ver también
Categorías
Más información sobre Linear Algebra en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!