I computed it with Matlab. You could also count the zero eigenvalues computed 
by SLEPc.
Jose

> El 15 sept 2017, a las 0:09, Pandey, Siddhant <[email protected]> escribió:
> 
> How do I calculate the rank of my A matrix? I couldn't find anything in PETSC 
> documentation. It seems like a mumps functionality, but I cannot get any 
> output regarding null pivots/rank deficiency.
> 
> Sidd
> CCNS, WPI
> From: Jose E. Roman <[email protected]>
> Sent: Thursday, September 14, 2017 4:33:01 AM
> To: Pandey, Siddhant
> Cc: [email protected]
> Subject: Re: [petsc-users] SLEPC - Hermitian matrix gives complex eigenvalues
>  
> 
> > 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
>  ---------------------- --------------------

Reply via email to