I'm trying to solve a simple eigenvalue problem by using ARPACK wrapped in the numpy of Python. The generalized eigenvalue problem is Lx=lambdaFx, where the hyperlinks of matrices L and F are attached just below. I used numpy.savetxt to save these matrices, so it's easiest for you to just use numpy.loadtxt, e.g. np.loadtxt('F.out'), to get directly the 2D matrix, whose dimension is 180*180 by the way. Let me know if you have any problem.
https://www.dropbox.com/s/c24maowf24eqcy3/F.out?dl=0 https://www.dropbox.com/s/2aodknq0rdcy8k0/L.out?dl=0
Then the eigs function is called
eigs(L, 10, F, sigma=0.6, which='LM')
where I seek for 10 eigenvalues around 0.6. The results are
0.57478719-0.01136287j
0.57478719+0.01136287j
0.57810950-0.0183666j
0.57810950+0.0183666j
0.57388571-0.01499086j
0.57388571+0.01499086j
0.58563972-0.02572953j
0.58563972+0.02572953j
0.61673303-0.02656085j
0.61673303+0.02656085j
But when I set the number of the eigenvalues to be sought to be 50, the solutions are completely different, which are
0.597747500000000 - 0.000281040000000i
0.597702020000000 + 0.000330230000000i
0.597718060000000 - 0.000507740000000i
0.597753770000000 + 0.000616410000000i
0.597868100000000 - 0.000899980000000i
0.597933180000000 + 0.001078770000000i
0.598383060000000 - 0.001671530000000i
0.598477610000000 + 0.001758160000000i
0.598707890000000 - 0.001942210000000i
0.599190580000000 + 0.002193790000000i
0.602047010000000 - 0.001129780000000i
0.601907360000000 + 0.001352900000000i
0.601100090000000 - 0.002059190000000i
0.601640660000000 + 0.001653970000000i
0.601461590000000 - 0.001833750000000i
0.601373900000000 + 0.001912630000000i
0.597747500000000 + 0.000281040000000i
0.597759400000000 - 0.000389200000000i
0.597718060000000 + 0.000507740000000i
0.597811070000000 - 0.000755450000000i
0.597868100000000 + 0.000899980000000i
0.598267470000000 - 0.001578010000000i
0.598383060000000 + 0.001671530000000i
0.598588530000000 - 0.001835530000000i
0.598707890000000 + 0.001942210000000i
0.599704340000000 - 0.002318040000000i
0.602047010000000 + 0.001129780000000i
0.601739360000000 - 0.001547320000000i
0.601100090000000 + 0.002059190000000i
0.601554210000000 - 0.001749120000000i
0.601461590000000 + 0.001833750000000i
0.601241730000000 - 0.001996120000000i
0.597702020000000 - 0.000330230000000i
0.597759400000000 + 0.000389200000000i
0.597753770000000 - 0.000616410000000i
0.597811070000000 + 0.000755450000000i
0.597933180000000 - 0.001078770000000i
0.598267470000000 + 0.001578010000000i
0.598477610000000 - 0.001758160000000i
0.598588530000000 + 0.001835530000000i
0.599190580000000 - 0.002193790000000i
0.599704340000000 + 0.002318040000000i
0.601907360000000 - 0.001352900000000i
0.601739360000000 + 0.001547320000000i
0.601640660000000 - 0.001653970000000i
0.601554210000000 + 0.001749120000000i
0.601373900000000 - 0.001912630000000i
0.601241730000000 + 0.001996120000000i
I would think that those 10 eigenvalues will appear in the 50 eigenvalues results, but it is not the case. Is this due to the algorithm ARPACK uses? Or I did something wrong? I know that the matrices here are highly non-Hermitian so it's not easy to solve, but at least the results should be consistent.
Thanks in advance for any help.