Matematiken bakom Ising-modellen

Se ”Kvantfysikens gränser”, i Fysikaktuellt nr 2, 2025. 
Det här är lite utveckling av det jag räknade på i faktaruten i artikeln.
Den exekverbara versionen av den här filen ligger också på hemsidan, men du behöver inte kunna Mathematica-språket för att följa det här. Isåfall, skippa helt enkelt koden (i det här typsnittet) och titta bara på kommentarerna (i det här typsnittet) och ekvationerna.

Den här raden har lite initieringskod som jag inte visar.

Remove["Global`*"]//Quiet
PacletInstall["Wolfram/QuantumFramework"];
Needs["Wolfram`QuantumFramework`"];

Välj L = 2, alltså två spinn (kvantbitar).

L  =2;

Hamilton-matrisen, vars egenvärden ger energierna, definieras så här:

HOperator=-J QuantumOperator["X",{1,2}]- h QuantumOperator["Z",{1}]- h QuantumOperator["Z",{2}];
H= Simplify[%["Matrix"]//Normal]

Som exempel, om vi stoppar in värdena J = 1 meV (milli-elektronvolt), h = 1/2 meV som i faktarutan:

vals = {J->1,h->1/2};
H/. vals

Tillbaka till allmänna J och h.
Diagonalisera matrisen H, ger följande egenvärder och egenvektorer
(alltså värden (Subscript[E, i]) och 4-komponents-vektorer (Subscript[v, i]) som uppfyller H (Subscript[v, i ]) = (Subscript[E, i]) (Subscript[v, i]), för i = 1, 2, 3, 4):

myValues[expr_] := N[expr /. vals]

{evals,evecs}=Transpose[SortBy[Transpose[Eigensystem[H]],myValues]]

För typiska värden på J och h är egenvärdena alla olika, som kallas att vi inte har   “degenerering”. För exempelvärdena J = 1 meV, h = 1/2 meV ovan har vi konkret:

% /.vals

återigen i meV (milli-elektronvolt). Som det står i artikeln i Fysikaktuellt, energierna är 
(Subscript[E, 1]) = –(Sqrt[2])meV, (Subscript[E, 2]) = –1 meV, (Subscript[E, 3]) = 1 meV, (Subscript[E, 4]) = (Sqrt[2])meV.
Alla fyra värdena är olika, men det är ändå en slags symmetri: det finns minus och plus av varje siffra. Det visar sig gälla även för fler spinn än två. Det kallas “partikel-hål-symmetri” eller “partikel-hål-tvång”. Att några är minus betyder bara relativt en referensnivå, det är inget konstigt: bara energi-skillnadet är mätbara här. 

Låt oss titta på Tillstånd 1 (egenvektor (Subscript[v, 1])), grundtillståndet, mer explicit:

QuantumState[Normalize[evecs[[1]]/.vals]]//FullSimplify
%//N

Superposition av |00⟩ (bägge kvantbitarna är “0”, eller spinn upp) och |11⟩  (bägge kvantbitarna är “1”, eller spinn ned), med större bråkdel av |00⟩. 
Sannolikheterna för de två möjliga utfallen:

%["Probabilities"]

Alltså 85% att mäta 00, 15% att mäta 11. 
Hur fick vi det? Det som står framför ovan (0,924 och 0,383) är sannolikhets-amplituder. För att få sannolikheterna har vi kvadrerat. Testa själv:

{0.92388^2,0.382683^2}

OK.
Låt oss ta en titt på Tillstånd 2 också.

QuantumState[Normalize[evecs[[2]]/.vals]]//FullSimplify
%//N
%["Probabilities"]

Det här är är superposition av 01 och 10 med sannolikhet 50% för bägge. 
Bägge är snärjda (sammanflätade, entangled). 

Definiera stegoperatorer för fermion-beskrivningen:
(är du intresserad har jag andra filer som förklarar hur man kommer fram till det här, men för tillfället, ta de här som givna och så testar vi att de verkar ha rätt egenskaper för att beskriva Ising-modellen ovan)

c={ ,}; cd={ ,};

c[[1]] = {{0,0,1,0},{0,0,0,1},{0,0,0,0},{0,0,0,0}}
c[[2]] = {{0,1,0,0},{0,0,0,0},{0,0,0,-1},{0,0,0,0}}
cd[[1]]= {{0,0,0,0},{0,0,0,0},{1,0,0,0},{0,1,0,0}}
cd[[2]] = {{0,0,0,0},{1,0,0,0},{0,0,0,0},{0,0,-1,0}}

OK, inget jätte-mystiskt, fyra stycken 4x4-matriser.
Alla fyra kvadrerar till noll:

ZeroMatrix = ConstantArray[0,{4,4}];

{c[[1]].c[[1]]==ZeroMatrix,c[[2]].c[[2]]==ZeroMatrix,cd[[1]].cd[[1]]==ZeroMatrix,cd[[2]].cd[[2]]==ZeroMatrix}

Som beskrivs i texten, det är en definierande egenskap hos fermioner, att de uppfyller Pauli-principen. 
Ta följande koefficientmatris H som given, och testa nedan att det ger rätt energier enligt ovan (det här är ett mellansteg, den K som är i artikeln kommer nedan, den är en variant av den här):

Hcoeff = {{h,-J/2,0,-J/2},{-J/2,h,J/2,0},{0,J/2,-h,J/2},{-J/2,0,J/2,-h}}

Här är det också en 4x4-matris. Men i allmänhet är matrisen H ovan (2^L)x (2^L), och den här 2L x 2L, och det senare är enormt mycket mindre för t.ex. L  = 100. Det är bara för små system som L = 2 som vi får (2^2) =  4 och (2 · 2)= 4, annars är (2^L) mycket större än 2L.

{evalsF,evecsF}=Transpose[SortBy[Transpose[Eigensystem[Hcoeff]],myValues]]
% /. vals

Ser inte uppenbart samma ut! Första energin är inte som ovan, till exempel.
Men det är inte så man ska tolka fermionerna.

Enligt spinn-representationen ovan ska grundtillståndet ha energi:

spinrepE0 = evals[[1]]
% /. vals

I fermion-representationen måste vi addera första och andra energin:

fermionrepE0  = evalsF[[1]]+evalsF[[2]]
%//Simplify
% /. vals

OK. Det menar jag med “tillknycklat” i artikeln, att det är lite mer omständligt att få fram energierna från matris-uträkningen. Men den är i sin tur extremt mycket lättare för fermionerna, när systemet blir stort. 

Andra tillståndet:

spinrepE1 = evals[[2]]
% /. vals

fermionrepE1 = fermionrepE0+2 evalsF[[3]]
%//Simplify

% /. vals

OK.

Nu till den egentliga koefficientmatrisen K i artikeln.
Majorana-kombinationerna brukar kallas η, men kalla dem f här för “fermion”:

f=Flatten[Table[{cd[[j]]+c[[j]],I(cd[[j]]-c[[j]])},{j,1,L}],1];

Här är de:

f[[1]]
f[[2]]
f[[3]]
f[[4]]

Skriv om J- och h-bitarna av H uttryckt i f:

HJ = I J f[[2]].f[[3]]

Hh = I  h  f[[1]].f[[2]]+I h f[[3]].f[[4]]

HJ + Hh
%==H

OK.
Majorana-koefficient-matrisen:

K=(1/2){{0,h,0,0},{-h,0,J,0},{0,-J,0,h},{0,0,-h,0}}

H==I Sum[K[[i,j]]f[[i]].f[[j]],{i,1,4},{j,1,4}]

Räkna i Majorana:

{evalsM,evecsM}=Transpose[SortBy[Transpose[Eigensystem[K]],myValues]]
Simplify[%,Assumptions->{J>0,h>0}]

Energinerna kan vi få via att gå tillbaka till (Subscript[c, 1]) =  1/2((Subscript[f, 1]) + i (Subscript[f, 2])), (Subscript[c, 1])† =  1/2((Subscript[f, 1]) – i (Subscript[f, 2])). Här är det ingen direkt fördel att jobba med kombinationen f kontra de ursprungliga fermionerna c. 

Men för presentationen så förenklar det lite att slippa jobba med (Subscript[c, 1]) och (Subscript[c, 1])†, lättare att prata om (Subscript[f, 1]) och (Subscript[f, 2]), bara man köper begreppet “halv elektron”. 

Som man inte ska köpa för lättvindigt! Men se den fina artikeln av Black-Schaffer som jag hänvisar till i texten:
Annica Black-Schaffer, ”Kvantfysik i material”, Kosmos 2017
http://www.fysikersamfundet.se/kosmos-2017
och när Kosmos ändå kom på tal kan jag ju inte annat än nämna min artikel
“Informationen bortom horisonten”, http://www.fysikersamfundet.se/kosmos-2019