# Eigenvectors associated to two quasi-degenerate eigenvalues

I need to find the smallest eigenvalue and the corresponding eigenvector of a sparse matrix $$M$$ whose dimension is $$\approx 10^4$$.

Within Matlab enviroment, I use the command

[Evec, Eval]= eigs(M,1,'sa');


The eigenvalue I obtain, $$\lambda_0$$, is very reasonable, but I suspect that the corresponding eigenvector, $$\vec{v}_0$$, is wrong. I also suspect that this possibly wrong eigenvector comes from the fact that matrix $$M$$ is such that the lower part of its spectrum is quasi-degenerate, i.e. $$\lambda_0 \approx \lambda_1\approx\lambda_2\approx \dots$$ Notice that the spectrum is quasi degenerate and not degenerate, meaning that, in any case, one has that $$\lambda_0<\lambda_1<\lambda_2<\dots$$.

1) Are my suspects reasonable?

2) Is this a well-known problem in Computational Science?

3) Is there a way to circumvent it, i.e. to obtain the exact eigenvector $$\vec{v}_0$$ associated to the smallest eigenvale $$\lambda_0$$ of a matrix $$M$$ whose lower part of the spectrum is quasi-degenerate?

Additional info: matrix $$M$$ represents a quantum Hamiltonian. It is symmetric but neither positive definite nor negative definite. Nevertheless, I am interested just in the lower part of its spectrum, i.e to the most negative eigenvalues.

• Have you computed the relative difference between $Ax$ and $\lambda x$ for the returned eigenvalue $\lambda$ and eigenvector $x$? If it's small, then that $x$ is effectively an eigenvector of $A$ associated with that eigenvalue $\lambda$. When you've got multiple nearly equal eigenvalues the returned eigenvalues should span an eigenspace of dimension equal to the number of times that eigenvalue is effectively repeated. – Brian Borchers Feb 9 '19 at 4:22
• @BrianBorchers, thanks for your comment. The point is that, rigorously, my matrix is not degenerate, i.e., the lowest eigenvalue is unique and therefore the eigenvector should be unique as well. My fear is indeed that, due to the quasi-degeneracy of the smallest eigenvalues, the algorithm retrieves not the actual eigenvector but a fake eigenvector which belongs to the fake multidimensional eigenspace. As I said, the eigenspace should be one-dimensional. – AndreaPaco Feb 9 '19 at 10:39
• I would do what @BrianBorchers suggests first. It might be that the vector you're finding is indeed an eigenvector if the discrete Hamiltonian. – nicoguaro Feb 9 '19 at 12:05
• AndreaPaco; you could verify that and check the eigs calculation by doing what I suggested. The method used by eigs isn't well suited to carefully separating nearly equal eigenvalues- you might try using the LAPACK based eig() function instead to see if it can separate the eigenvalues and give you the result you want. – Brian Borchers Feb 9 '19 at 15:00

• Thanks for your answer. Can you please give me a reasonable number for 'SubspaceDimension'? I don't have any ideas about it. $\approx$10 or $\approx$100 or $\approx$1000? – AndreaPaco Feb 9 '19 at 10:47
• Moreover: which is the role of the starting Lanczos vector? I mean: should it be similar to what the output will be? I ask this question because i perform the diagonalization of several matrices $M(\alpha_j)$ where $\alpha_j$ is a real parameter which $M$ depends on. So the idea could be: use the output (i.e. the first eigenvector) of the diagonalization of matrix $M(\alpha_j)$ as input (i.e. starting Lanczos vector) for the diagonalization of the following matrix $M(\alpha_{j+1})$. Is it reasonable or is it nonsense? – AndreaPaco Feb 9 '19 at 11:16