> El 14 sept 2017, a las 0:27, Pandey, Siddhant <[email protected]> escribió:
>
> Hello all,
>
> I am diagonalizing a hermitian matrix (MatIsHermitian = 1 up to a tolerance
> of 1e-15) using krylovschur, with EPS_TARGET_MAGNITUDE = 0, but getting
> complex eigenvalues. Also, I am getting seemingly spurious eigenvalues of
> magnitude very close to 0, whose relative errors are much larger than my set
> tolerance. Can anyone indicate what might be the cause and possible solutions.
>
> I have attached the files eps_view, A_mat_binary, and B_mat_binary files,
> which show the settings I have used, and contain the A and B matrices
> respectively (in binary).
>
> The eigenvalues I get are:
>
> #
>
> Eigenvalue
> — ----------------------------------------------------------------
> 0 0.0000000000000077 + i -0.0000000000000000
> 1 0.0000000000000265 + i -0.0000000000000008
> 2 0.0000000000000340 + i 0.0000000000000002
> 3 0.0000000000000373 + i 0.0000000000000001
> 4 0.0000000000000444 + i -0.0000000000000007
> 5 0.0000000000000448 + i -0.0000000000000017
> 6 0.0000000000000470 + i 0.0000000000000002
> 7 0.0000000000000489 + i 0.0000000000000030
> 8 0.0000000000000548 + i 0.0000000000000006
> 9 0.0000000000000585 + i 0.0000000000000001
> 10 0.0000000000000643 + i 0.0000000000000005
> 11 0.0000000000000714 + i -0.0000000000000008
> 12 0.0000000000000750 + i -0.0000000000000019
> 13 0.0000000000000752 + i 0.0000000000000031
> 14 0.0000000000000769 + i -0.0000000000000002
> 15 0.0000000000000784 + i -0.0000000000000037
> 16 0.0000000000000860 + i 0.0000000000000002
> 17 0.0000000000000880 + i -0.0000000000000004
> 18 0.0000000000000968 + i -0.0000000000000001
> 19 0.0000000000000979 + i 0.0000000000000013
> 20 0.0000000000001045 + i -0.0000000000000001
> 21 0.0000000000001150 + i -0.0000000000000011
> 22 0.0000000000001348 + i -0.0000000000000012
> 23 0.0000000000001446 + i -0.0000000000000019
> 24 0.0000000000001454 + i 0.0000000000000011
> 25 0.0000000000001555 + i 0.0000000000000003
> 26 0.0000000000002513 + i -0.0000000000000009
> 27 5.0908854514230413 + i -0.0022004178122762
> 28 5.2768106039842175 + i 0.1043464906789375
> 29 5.3003883062604187 + i -0.0757735907905433
> 30 11.5143655883932929 + i 0.0049838692042474
> 31 11.8821523259838653 + i -0.1475608751440501
> 32 11.9515216995487101 + i 0.1857395729336506
> 33 12.0909362158339384 + i 0.0049114285397287
> 34 12.0905704159492675 + i -0.1522880348537981
> 35 12.2205398661469111 + i -0.0781999802933937
> 36 12.4807156964720480 + i -0.2850122604907908
> 37 12.6082849940660289 + i 0.0560456679728079
> 38 12.9384278480576125 + i 0.0238826907631012
> 39 17.5230234731441357 + i -0.1824807274488794
> 40 17.5503678395543901 + i 0.1785356473404145
> 41 17.6933953160112409 + i -0.0626631055149425
> 42 19.1692824404480930 + i -0.6351729266691462
> 43 19.4158452684509797 + i 0.3151965488807310
> 44 19.6020750507704591 + i -0.2559887580276014
> 45 19.6443102906562181 + i 1.1005601705485646
> 46 19.7948713379697452 + i 0.1230015140422697
> 47 19.8791098474284347 + i -0.1943322911563744
> 48 20.1268732265661860 + i -0.0340890856219265
> 49 20.1368588182453898 + i 0.2673370459460956
>
>
> Thanks in advance,
> Sidd
> Worcester Polytechnic, U.S.A.
> <A_mat_binary><B_mat_binary><eps_view_pre.txt>
Your B matrix has full rank, but rank(A)=1002. This means your eigenproblem has
27 zero eigenvalues. So no wonder that you get tiny eigenvalues (they are
numerically zero in the working precision).
Since you problem is Hermitian, you should solve it as such, adding
-eps_gen_hermitian. Then the accuracy will be a bit better. Still, the relative
error for the tiny eigenvalues will be large (division by zero), but you can
see that the *absolute* error shows that the eigenvector is computed correctly.
See output below.
Another thing is that since your A matrix is singular, you should not use
target=0, because then the solver will invert matrix A. MUMPS is good at
working with singular matrices, but still the error will propagate to the
computed eigensolutions. You have to move away from zero, e.g. target=0.1
Finally, do not set ncv=1029. By doing this, the built subspace is equal to the
whole space of the original problem, so the cost will be even higher than
calling LAPACK directly on your matrices. Let SLEPc choose the ncv value.
Jose
$ ./ex7 -f1 ~/tmp/pandey/A_mat_binary -f2 ~/tmp/pandey/B_mat_binary
-st_pc_factor_mat_solver_package mumps -st_type sinvert -eps_target 0.1
-eps_nev 50 -eps_error_absolute ::ascii_info_detail
Generalized eigenproblem stored in file.
Reading COMPLEX matrices from binary files...
---------------------- --------------------
k ||Ax-kBx||
---------------------- --------------------
0.000000+0.000000i 7.65812e-12
0.000000-0.000000i 2.78585e-12
0.000000-0.000000i 6.30965e-12
0.000000+0.000000i 1.90477e-12
0.000000-0.000000i 4.18541e-12
0.000000+0.000000i 2.90717e-12
0.000000+0.000000i 2.90732e-12
0.000000-0.000000i 6.69097e-12
0.000000+0.000000i 2.01707e-12
0.000000-0.000000i 6.2849e-12
0.000000-0.000000i 6.30369e-12
0.000000-0.000000i 6.79209e-12
0.000000+0.000000i 3.3761e-12
0.000000-0.000000i 6.19772e-12
0.000000+0.000000i 3.87231e-12
0.000000-0.000000i 2.75338e-12
0.000000+0.000000i 9.50872e-12
0.000000-0.000000i 4.59981e-12
0.000000-0.000000i 7.62071e-13
0.000000-0.000000i 7.24146e-12
0.000000+0.000000i 2.98146e-12
0.000000-0.000000i 1.49165e-12
0.000000-0.000000i 1.33641e-12
0.000000-0.000000i 3.02551e-12
0.000000-0.000000i 1.76448e-12
0.000000+0.000000i 2.03659e-12
0.000000-0.000000i 5.71796e-12
5.238680+0.000000i 3.67926e-11
5.238680+0.000000i 3.85213e-11
5.238680+0.000000i 3.3809e-11
12.047661+0.000000i 3.74891e-11
12.047661+0.000000i 3.36437e-11
12.047661+0.000000i 4.68278e-11
12.079279+0.000000i 4.27835e-11
12.079279+0.000000i 7.02149e-11
12.079279-0.000000i 1.14514e-10
12.954275+0.000000i 1.13398e-10
12.954275-0.000000i 1.0298e-10
12.955799-0.000000i 6.2543e-11
17.515033+0.000000i 1.25423e-10
17.515033-0.000000i 6.11696e-11
17.647490+0.000000i 2.56307e-10
19.770424-0.000000i 1.43313e-07
19.770424-0.000000i 4.1167e-11
19.770424-0.000000i 7.67294e-11
19.770424-0.000000i 5.92692e-11
19.770424+0.000000i 7.66231e-11
19.770424+0.000000i 9.85743e-11
20.199838+0.000000i 8.37107e-11
20.199838+0.000000i 3.56701e-11
20.199838-0.000000i 8.82029e-11
20.199838-0.000000i 8.52395e-11
20.199838-0.000000i 8.82165e-11
20.199838-0.000000i 4.32813e-07
24.112262+0.000000i 2.25578e-10
24.112262-0.000000i 1.27094e-10
24.112262+0.000000i 1.14679e-10
24.227579-0.000000i 9.77701e-11
24.227579+0.000000i 1.41993e-10
24.227579-0.000000i 1.84562e-10
29.035473-0.000000i 2.69505e-10
29.035473-0.000000i 1.72167e-10
29.035473-0.000000i 1.87434e-10
29.649484-0.000000i 2.44039e-10
29.649484-0.000000i 3.84759e-10
32.112699+0.000000i 1.35182e-10
32.112699+0.000000i 1.91162e-10
32.112699-0.000000i 3.58118e-10
32.115257+0.000000i 3.58743e-10
32.115257-0.000000i 3.46267e-10
32.115257+0.000000i 4.55903e-10
50.121754+0.000000i 6.04554e-10
50.121754-0.000000i 6.26139e-10
---------------------- --------------------
Number of iterations of the method: 3
Number of linear iterations of the method: 168
Solution method: krylovschur
Number of requested eigenvalues: 50
Stopping condition: tol=1e-08, maxit=100
Linear eigensolve converged (73 eigenpairs) due to CONVERGED_TOL; iterations 3
---------------------- --------------------
k ||Ax-kBx||/||kx||
---------------------- --------------------
0.000000+0.000000i 31.3252
0.000000-0.000000i 18.2211
0.000000-0.000000i 44.631
0.000000+0.000000i 13.836
0.000000-0.000000i 30.8722
0.000000+0.000000i 26.1132
0.000000+0.000000i 28.6077
0.000000-0.000000i 74.5526
0.000000+0.000000i 23.1291
0.000000-0.000000i 74.0475
0.000000-0.000000i 74.7671
0.000000-0.000000i 90.664
0.000000+0.000000i 45.6476
0.000000-0.000000i 84.4024
0.000000+0.000000i 55.9734
0.000000-0.000000i 42.2662
0.000000+0.000000i 155.367
0.000000-0.000000i 82.083
0.000000-0.000000i 14.409
0.000000-0.000000i 163.883
0.000000+0.000000i 70.2693
0.000000-0.000000i 38.2544
0.000000-0.000000i 35.2561
0.000000-0.000000i 87.8327
0.000000-0.000000i 73.0972
0.000000+0.000000i 102.899
0.000000-0.000000i 841.374
5.238680+0.000000i 7.02326e-12
5.238680+0.000000i 7.35325e-12
5.238680+0.000000i 6.45373e-12
12.047661+0.000000i 3.11174e-12
12.047661+0.000000i 2.79255e-12
12.047661+0.000000i 3.88688e-12
12.079279+0.000000i 3.54189e-12
12.079279+0.000000i 5.81284e-12
12.079279-0.000000i 9.48017e-12
12.954275+0.000000i 8.75372e-12
12.954275-0.000000i 7.94948e-12
12.955799-0.000000i 4.82741e-12
17.515033+0.000000i 7.16088e-12
17.515033-0.000000i 3.49241e-12
17.647490+0.000000i 1.45237e-11
19.770424-0.000000i 7.24883e-09
19.770424-0.000000i 2.08225e-12
19.770424-0.000000i 3.88102e-12
19.770424-0.000000i 2.99787e-12
19.770424+0.000000i 3.87565e-12
19.770424+0.000000i 4.98595e-12
20.199838+0.000000i 4.14413e-12
20.199838+0.000000i 1.76586e-12
20.199838-0.000000i 4.36652e-12
20.199838-0.000000i 4.21981e-12
20.199838-0.000000i 4.36719e-12
20.199838-0.000000i 2.14265e-08
24.112262+0.000000i 9.35532e-12
24.112262-0.000000i 5.27091e-12
24.112262+0.000000i 4.75603e-12
24.227579-0.000000i 4.03549e-12
24.227579+0.000000i 5.8608e-12
24.227579-0.000000i 7.61787e-12
29.035473-0.000000i 9.28191e-12
29.035473-0.000000i 5.92953e-12
29.035473-0.000000i 6.45536e-12
29.649484-0.000000i 8.23079e-12
29.649484-0.000000i 1.29769e-11
32.112699+0.000000i 4.20961e-12
32.112699+0.000000i 5.95285e-12
32.112699-0.000000i 1.11519e-11
32.115257+0.000000i 1.11705e-11
32.115257-0.000000i 1.0782e-11
32.115257+0.000000i 1.41958e-11
50.121754+0.000000i 1.20617e-11
50.121754-0.000000i 1.24924e-11
---------------------- --------------------