Message Boards Message Boards

0
|
3678 Views
|
3 Replies
|
1 Total Likes
View groups...
Share
Share this post:

Adjust eigenvalues to reflect proper avoided crossing behavior?

Posted 7 years ago

Basically I need the top color to remain the top color and the bottom color to remain the bottom color in an effort to properly reflect the avioded crossing taking place. Here is my code.

data = {};
Eg1 = {};
Eg2 = {};
For[\[CapitalDelta] = -10, \[CapitalDelta] <= 
   10, \[CapitalDelta] = \[CapitalDelta] + .1,
  \[HBar] = 1.0;
  u = 1.0;
  (*Constants to allow numerical analysis*)
  H = ( {
     {0, u},
     {u, \[CapitalDelta]}
    } );
  (*Hamiltonian defined*)
  \[Psi] = ( {
     {1},
     {0}
    } );
  (*Intial state*)
  eval = Eigenvalues [H];


  AppendTo[Eg1, {\[CapitalDelta], eval[[1]]}];
  AppendTo[Eg2, {\[CapitalDelta], eval[[2]]}];




  (*Representing eigenvalues of the hamiltonian*)

  S = Transpose[Normalize /@ Eigenvectors[H]];
  (*This represents S hat,
  a matrix consisting of the eigenvectors in order*)

  Sd = ConjugateTranspose[S];
  (*This represents S hat dagger, 
  a matrix consisting of the Hermitian conjugate or conjugate \
transpose of S hat*)

  U[t_] := S. ( {
      {E^(-I eval[[1]] t/\[HBar]), 0},
      {0, E^(-I  eval[[2]] t/\[HBar])}
     } ).Sd;
  (*This represents U(t), the time evolution operator, 
  a matrix operator composed of S hat, 
  e raised to \[CapitalLambda] hat (a matrix consisting of e to the \
(-i)(\[CapitalLambda] hat)(t/\[HBar])) where \[CapitalLambda] hat is \
matrix consisting of the eigenvalues along the diagonal in order with \
zeros elsewhere), and S hat dagger. 
  U(t) can be multiplied by \[Psi](0) to obtain \[Psi](t)*)

  temp = {};
  (*This will end up containing all results after the for loop \
iterations*)

  For[t = 0, t <= 10, t = t + .01,
   \[Psi]t = U[t].\[Psi];
   (* This represents \[Psi]t, 
   the product of the time evolution operator and the initial state \
which we use to operate on an initial quantum mechanical system to \
find the state at a later time*)

   prob = \[Psi]t[[2]].Conjugate[\[Psi]t[[2]]];
   (*This represents the probablity of the pp' state, \[Psi]t[[2]]. 
   We obtain it by multiplying the probabailty amplitud by its \
complex conjugate*) 
   AppendTo[temp, prob];
   ];
  AppendTo[data, {\[CapitalDelta], Mean[temp]}];
  ];
ListPlot[data, Joined -> True]
ListPlot[{Eg1, Eg2}, Joined -> True]
![Graph attached][1]
Attachments:
POSTED BY: Jason Bennett
3 Replies

Thank you for your reply! I ended up asking my professor and he told me that sort[] will do the same as you did :)

POSTED BY: Jason Bennett
data = {};
    Eg1 = {};
    Eg2 = {};
    For[\[CapitalDelta] = -10, \[CapitalDelta] <= 
       10, \[CapitalDelta] = \[CapitalDelta] + .1,
      \[HBar] = 1.0;
      u = 1.0;
      (*Constants to allow numerical analysis*)
      H = ( {
         {0, u},
         {u, \[CapitalDelta]}
        } );
      (*Hamiltonian defined*)
      \[Psi] = ( {
         {1},
         {0}
        } );
      (*Intial state*)
      eval = Sort[Eigenvalues [H]];

      AppendTo[Eg1, {\[CapitalDelta], eval[[1]]}];
      AppendTo[Eg2, {\[CapitalDelta], eval[[2]]}];
      ];
ListPlot[{Eg1, Eg2}, Joined -> True]

enter image description here

POSTED BY: Jason Bennett

Is this what you want? I took the min values in yellow and the max values in blue.

newEg1 = Map[{#[[1, 1]], Max[#[[1, 2]], #[[2, 2]]]} &, 
   Transpose[{Eg1, Eg2}]];

newEg2 = Map[{#[[1, 1]], Min[#[[1, 2]], #[[2, 2]]]} &, 
   Transpose[{Eg1, Eg2}]];
ListPlot[{newEg1, newEg2}, Joined -> True]

Which gives:

enter image description here

POSTED BY: Neil Singer
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract