I am trying to plot the eigenvalues of the following matrix
hamil[kx_,ky_,kz_]={{-10.6`, -0.25` E^(
I (-0.625` kx - 0.21650635094610965` ky -
0.43666666666666665` kz)) -
0.7` E^(I (0.375` kx - 0.21650635094610965` ky -
0.43666666666666665` kz)) -
0.25` E^(
I (-0.125` kx + 0.649519052838329` ky - 0.43666666666666665` kz)),
E^((0.` +
0.43666666666666676` I) kz) (-0.25` E^((0.` -
0.125` I) kx - (0.` + 0.649519052838329` I) ky) +
E^((0.` - 0.625` I) kx + (0.` +
0.21650635094610965` I) ky) (-0.25` -
0.7` E^((0.` + 1.` I) kx)))}, {E^((0.` -
0.375` I) kx - (0.` + 0.649519052838329` I) ky + (0.` +
0.43666666666666665` I) kz) (-0.25` E^((0.` + 0.5` I) kx) +
E^((0.` + 0.8660254037844386` I) ky) (-0.7` -
0.25` E^((0.` + 1.` I) kx))), -10.6`,
E^((0.` - 0.5` I) kx - (0.` + 0.43301270189221935` I) ky - (0.` +
0.43666666666666665` I) kz) (-0.25` -
0.25` E^((0.` + 1.` I) kx) -
0.7` E^((0.` + 0.5` I) kx + (0.` +
0.8660254037844387` I) ky))}, {E^((0.` -
0.375` I) kx - (0.` + 0.21650635094610965` I) ky - (0.` +
0.43666666666666676` I) kz) (-0.7` -
0.25` E^((0.` + 1.` I) kx) -
0.25` E^((0.` + 0.5` I) kx + (0.` + 0.8660254037844386` I) ky)),
E^((0.` - 0.43301270189221935` I) ky + (0.` +
0.43666666666666665` I) kz) (-0.7` +
E^((0.` - 0.5` I) kx + (0.` +
0.8660254037844387` I) ky) (-0.25` -
0.25` E^((0.` + 1.` I) kx))), -10.6`}}
Now the eigenvalues as function of kx, ky and kz are
{es1[kx_, ky_, kz_], es2[kx_, ky_, kz_], es3[kx_, ky_, kz_]} =
Eigenvalues[hamil[kx, ky, kz]] // FullSimplify;
Now plotting all the three eigenvalues
Plot[{Chop[es1[0, 0, z]], Chop[es2[0, 0, z]], Chop[es3[0, 0, z]]}, {z,
0, \[Pi]/1.31}]
I don't understand why is there a sudden jump in blue plot and green plot? Is there a way to rectify this? Is this problem also occur when solving eigenfunctions?
To further stating the problem, as Bob's answer suggests that changing the precision of the equation helps somewhat. However, changing the plotting variable results in same issue that is not rectified by the Bob's solution.
Plot[{Chop[es1[x, 0, 0]], Chop[es2[x, 0, 0]], Chop[es3[x, 0, 0]]}, {x,
0, \[Pi]/1.31}]





Rootobjects automatically sort the eigenvalues (although all I could find in the documentation was "The ordering used byRoot[f,k]takes real roots to come before complex ones"), so I'm surprised it's doing this. – march Sep 08 '21 at 22:01here– Bob Hanlon Sep 08 '21 at 22:06FullSimplifyor if youRationalizeeitherhamilor the eigenvalue functions? – march Sep 08 '21 at 23:22