Deel 3 van de reeks Floquet-Ising: van twee qubits naar prethermale oscillaties
Een toy model is pas echt leerzaam wanneer het niet achter een simulator verdwijnt. Met twee qubits heeft de toestand vier amplitudes. De volledige Floquetcyclus is een vier-bij-viermatrix en iedere meetkans kan met gewone lineaire algebra worden gecontroleerd.
De basis en de beginstaat
We gebruiken de rekenbasis in de volgorde |00>, |01>, |10>, |11>. De beginstaat is
\[|\psi_0\rangle=|00\rangle=
\begin{pmatrix}1\\0\\0\\0\end{pmatrix}.
\]
Een rotatie om een Pauli-as P heeft de compacte vorm
\[R_P(\theta)=e^{-i\theta P/2}
=\cos\!\left(\frac{\theta}{2}\right)I
-i\sin\!\left(\frac{\theta}{2}\right)P,
\]
omdat P in het kwadraat gelijk is aan I. Voor twee onafhankelijke qubits nemen we het tensorproduct RX maal RX of RZ maal RZ. Voor de interactie gebruiken we P = Z maal Z.
De zeven gates van één cyclus
Met A = RX(theta-x) maal RX(theta-x), B = RZ(theta-z) maal RZ(theta-z) en C = RZZ(theta-zz) is de tijdsvolgorde A, B, C, A, B, A, B. De samengestelde Floquetmatrix is daarom
\[U_F = B A B A C B A.
\]
De rechter A werkt het eerst op de toestand. Deze schrijfwijze voorkomt een veelgemaakte fout: een circuitdiagram leest vaak van links naar rechts, terwijl matrixproducten van rechts naar links werken.
De parameters van de educatieve reductie zijn
\[\theta_x=\frac{\pi}{6},
\qquad
\theta_z=\frac{\pi}{27},
\qquad
\theta_{zz}=\frac{\pi}{3}.
\]
Van amplitudes naar kansen
Na één cyclus berekenen we
\[|\psi_1\rangle=U_F|\psi_0\rangle
=a_{00}|00\rangle+a_{01}|01\rangle
+a_{10}|10\rangle+a_{11}|11\rangle.
\]
De fasen van de amplitudes zijn belangrijk voor latere interferentie. Bij een directe Z-meting zien we alleen de Bornkansen Pxy = |axy|². De exacte code geeft
| Bitstring | Kans na cycle 1 |
|---|---|
| 00 | 0.453879 |
| 01 | 0.186641 |
| 10 | 0.186641 |
| 11 | 0.172838 |
De som is één, op afronding na. De gelijkheid P01 = P10 volgt uit de wisselsymmetrie van de twee identieke qubits en de symmetrische beginstaat.
Magnetisatie zonder matrixvermenigvuldiging
De magnetisatieoperator is
\[\hat M=\frac{Z_0+Z_1}{2}.
\]
De toestanden |01> en |10> leveren nul aan het gemiddelde: de ene spin wijst omhoog en de andere omlaag. |00> levert +1 en |11> levert -1. Daarom
\[M(1)=P_{00}-P_{11}
=0.453879-0.172838
=0.281041.
\]
Dit is een mooie controle omdat we hetzelfde getal op drie manieren kunnen krijgen: via de operatorverwachtingswaarde, rechtstreeks uit de kansen en met een onafhankelijke Qiskit-statevector.
Verstrengeling uit een twee-bij-tweematrix
Schik de vier amplitudes als coëfficiëntenmatrix
\[A=\begin{pmatrix}a_{00}&a_{01}\\a_{10}&a_{11}\end{pmatrix}.
\]
Wanneer we qubit 1 uitmiddelen, blijft voor qubit 0 de gereduceerde dichtheidsmatrix rho0 = A A-dagger over. Met eigenwaarden lambda1 en lambda2 is de entanglemententropy
\[S=-\sum_k \lambda_k\log_2\lambda_k.
\]
Voor een producttoestand is S = 0. Voor een maximaal verstrengelde twee-qubittoestand is S = 1 bit. Na de eerste cyclus vinden we ongeveer 0.093 bit: de interactie heeft verstrengeling gemaakt, maar nog niet maximaal.
Waarom de exacte implementatie klein maar waardevol is
De NumPy-code bouwt de gates uit de Pauli-matrices, vermenigvuldigt de toestand en evalueert de observabelen. Er is geen samplingruis: alle amplitudes zijn beschikbaar. De Qiskit-route construeert hetzelfde circuit onafhankelijk. Regressietests eisen dat beide berekeningen numeriek overeenkomen.
state = |00>
for cycle in 0..N:
meet exact M and S
state = U_F @ state
Deze eenvoud maakt fouten zichtbaar die in een groot experiment gemakkelijk verborgen raken: gatevolgorde, tekenconventies, qubitendianness, de factor een-half in rotaties en de mapping van bitstrings naar Z-eigenwaarden.
De grens van vier amplitudes
Voor N qubits bevat een dichte toestand 2 tot de macht N amplitudes. Vier amplitudes zijn handzaam; bij 51 qubits zijn het er meer dan twee biljard. De wiskunde van één gate verandert niet, maar de klassieke opslag wel.
Het toy model is daarom tegelijk een fysisch lesmodel en een software-orakel. Het vertelt ons exact wat de implementatie moet doen in een geval waarin geen approximatie nodig is. In deel 4 gebruiken we de volledige trajectorie om magnetisatie en verstrengeling naast elkaar te lezen.
Zelf uitvoeren
python -m floquet_qem run --cycles 12 --out .
python -m floquet_qem qiskit-check --cycles 12


