I have a python script that calls numpy.linalg.eigvals(A), and goes on to find the eigenvalue of matrix A with the largest imaginary part; call this lambda_k.
I track the index k of lambda_k as I change A slowly. I find that the index k flickers between around 5 different values, with a spread that is quite small compared to the size of A (e.g. a spread of 100 when A has 8192*8192 entries).
I know the order of eigenvalues carries no meaning, but as the entries of A vary slowly and continuously shouldn't there be a slow, continuous change in the eigenvalues and eigenvectors returned by the LAPACK solver that eigvals calls? And so shouldn't the order in which these are returned change continuously (and hence k)?
And is there a way of tracking which algorithm is being called by eigvals? So that I can check the algorithm's docs and spot if there is anything that maybe permutes A and hence change the order of eigenvalues.