(*Napisane przez Pawła Czachorowskiego. Wykorzystanie dowolne.*)
(*Wszelkie uwagi mile widziane.*)

(*Trochę interaktywnej zabawy. Pozmieniajcie suwakami (pod "+" obok suwaków można zobaczyć wartość oraz więcej narzędzi) wartości parametrów i zobaczcie jak zmieniają się energie. Hśr to średnia H11 i H22. Początkowe wartości parametrów ustawione dla przypadku degeneracji i ortonormalności.*)

(*Oczywiście żeby wszystko zadziałało, konieczne jest wybranie z menu Evaluation->Evaluate Notebook.*)

$Assumptions=Element[{H11,H12,H22,S12},Reals]&&H11≤0&&H22≤0;

H=(({{H11, H12}, {H12, H22}}));

S=(({{1, S12}, {S12, 1}}));

ES=FullSimplify[Eigensystem[{H,S}]];

fun1[H11_,H22_,H12_,S12_]=ES[[1]][[2]];

fun2[H11_,H22_,H12_,S12_]=ES[[1]][[1]];

Magnify[Manipulate[Plot[{(H11+H22)/2,fun1[H11,H22,H12,S12],fun2[H11,H22,H12,S12]},{x,-1,1},PlotRange->{-3,1},PlotLegends->{"Hśr","E+","E-"}],{{H11,-1.0},-1,0,0.1},{{H22,-1.0},-1,0,0.1},{{H12,-0.7},-1,0,0.1},{{S12,0},0,1.0,0.1}],1.5]

(*Wizualizacja reguły nieprzecinania się. Na osi poziomej jest odległość pomiędzy wyjściowymi energiami poziomów diabatycznych, na osi pionowej-- energia stanów adiabatycznych (patrz: L. Piela, "Idee chemii kwantowej"). Suwakiem można zmieniać wartość sprzężenia między stanami (dla równego 0 poziomy mogą się przeciąć).*)

Magnify[Manipulate[Plot[{fun1[d,-d,H12,0],fun2[d,-d,H12,0]},{d,-1,1}],{H12,-1,0,0.1}],1.5]