1
$\begingroup$

There is the possibility that this question may have been asked previously, but as we are unfamiliar with the nature of the chart below, we hope to seek a response to this query.

Consider a matrix as follows:

matrix = {{0.1 j, 0, 0, 0.2 j, 0}, {0, 0.1 j, 0, 0.2 j, 0}, {0, 0.1 j,
0, 0, 0.2 j}, {0.1 j, 0, 0, 0, 0.2 j}, {0, 0, 0.1 j, 0.2 j, 0}};

In any choice of j which must be chosen in the range of [1,2,3,4], there is a set of eigenvalues (for this matrix we expect 5 eigenvalues for each j separately), we are going to draw a chart similar to

enter image description here

in which the vertical axes shows eigenvalues magnitude (from the lowest one to the largest for various j's). (however the real eigenvalues are not 1, 2, 3 for j=1 for the above defined matrix the plot is just a schematic picture of what we wish to have). Also (for j=1 and j=2) for instance there is a condition in which degeneracy is governed or the different between continuous eigenvalues for a special j is less than 10^-3, with a command same as:

Union[Eigenvalues[matrix] // N, SameTest -> (Abs[#1 - #2] < 10^-3 &)]

How we can draw this wish and with the last condition?

$\endgroup$

2 Answers 2

3
$\begingroup$
Clear[Hma];

n = 5;

Hma[j_Integer] = {{0.1*j, 0, 0, 0.2*j, 0}, {0, 0.1*j, 0, 0.2*j, 0}, {0, 0.1*j,
     0, 0, 0.2*j}, {0.1*j, 0, 0, 0, 0.2*j}, {0, 0, 0.1*j, 0.2*j, 0}};

data1 = Flatten[Table[Thread[{j,
       Eigenvalues[Hma[j]]}],
     {j, n}], 1] // Chop;

With your condition

data2 = Flatten[Table[Thread[{j,
       Union[Eigenvalues[Hma[j]], SameTest -> (Abs[#1 - #2] < 10^-3 &)]}],
     {j, n}], 1] // Chop;

There are no eigenvalues eliminated by your condition

Length[data1] == Length[data2]

True

ListPlot[data, Frame -> True, 
 FrameLabel -> {Style["J No.", Medium, Bold], Style["Values", Medium, Bold]}]

enter image description here

$\endgroup$
1
  • $\begingroup$ @mr.0093, this is very easy to find in the documentation.... $\endgroup$ Commented Aug 15, 2015 at 21:00
0
$\begingroup$

I am not too clear about your last condition, however the following code could yield an output CLOSE to what you have in mind:

Hma[j_] = {{0.1*j, 0, 0, 0.2*j, 0}, {0, 0.1*j, 0, 0.2*j, 0}, {0, 
    0.1*j, 0, 0, 0.2*j}, {0.1*j, 0, 0, 0, 0.2*j}, 
       {0, 0, 0.1*j, 0.2*j, 0}}; 

ListPlot[Table[Evaluate[Eigenvalues[Hma[j]]], {j, 1, 5, 1}], 
 Frame -> True, FrameLabel -> {Style["J No.", Large, Bold], 
   Style["Values", Large, Bold], Style["", Large, Bold]}, 
 Ticks -> Automatic, LabelStyle -> Directive[Black, Bold, Large]]

Each colour denotes a distinct J. There is one eigenvalue for each J that seem very close to zero, so the last dot signifies these small values.

enter image description here

$\endgroup$
9
  • $\begingroup$ Are you sure the defrerences of eigenvalues (for example for j=1) is same! the EigenValues@Hma/.j->1= {0.3, -0.273205, 0.1, 0.0732051, 3.93535*10^-17}, but there is no minus eigenvalues for j=1! $\endgroup$ Commented Aug 15, 2015 at 11:56
  • $\begingroup$ Don't know what u mean.....the blue dot signifies J=1, and does go below zero in the plot.. Moreover you could modify the code. $\endgroup$
    – thils
    Commented Aug 15, 2015 at 12:05
  • $\begingroup$ Besides, thanks for your try but I think there is a misunderstanding. Above j=1 must be put pertinent eigenvalues (eigenvalues related to j=1 in the matrix)! $\endgroup$ Commented Aug 15, 2015 at 12:16
  • $\begingroup$ these numbers {0.3, -0.273205, 0.1, 0.0732051, 3.93535*10^-17} must be put above the j=1, $\endgroup$ Commented Aug 15, 2015 at 12:22
  • $\begingroup$ Whati is "pertinent: eigenvalue? If you are after the magnitude, use "Abs" $\endgroup$
    – thils
    Commented Aug 15, 2015 at 12:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.