1
$\begingroup$

I'm solving for a quantum system's evolution operator $U_S(t)$ using two different Interaction Pictures.

The physical evolution is described by the Schrodinger equation for the evolution operator $U(t)$:$$i \frac{d}{dt}U(t) = H(t) U(t)$$

The "Interaction Picture" is a mathematical change of reference frame via transformation $U_0(t)$. The underlying physical evolution of the system is independent of this choice, so the final evolution operator in the original "lab frame" (the Schrödinger Picture) must be the same. Assuming $U_0(0)$ is an identity matrix, the final result is calculated via $U_S(t) = U_0(t) \cdot U_I(t)$, which must be independent of the choice of $U_0(t)$.

Transformation of the Hamiltonian following the rule: $$H_I(t) = U_0^\dagger(t) H_S(t) U_0(t) - i U_0^\dagger(t) \frac{d}{dt}U_0(t)$$

After solving in each picture and transforming back to the Schrödinger picture, the final results (UFinal1 and UFinal2) should be identical.

However, the outcomes solved by NDSolveValue is difference.

Minimal Working Code:

    (*1. Setup*)ClearAll["Global`*"];
    $PrePrint = If[MatrixQ[#], MatrixForm[#], #] &;
    SI = IdentityMatrix[2]; SX = PauliMatrix[1]; SZ = PauliMatrix[3];
    KRON = KroneckerProduct; ME = MatrixExp; FS = FullSimplify;
    X1 = KRON[SI, SX]; Z1 = KRON[SI, SZ]; Z2 = KRON[SZ, SI];
    Eavg = 15.0`30*2*Pi; \[CapitalDelta] = 0.3`30*2*Pi; \[CapitalOmega] = 
     0.01`30*2*Pi;
    T = Pi/\[CapitalOmega]; \[Omega] = Eavg + \[CapitalDelta]/2;
    H[t_] := \[CapitalOmega]*Cos[\[Omega]*t]*
        X1 + \[CapitalDelta]/4 (Z1 - Z2) + Eavg/2*(Z1 + Z2);
    
    (*2. Pre-calculate analytical Hamiltonians*)
    U1[t_] = ME[-I*(\[CapitalDelta]/4 (Z1 - Z2) + Eavg/2*(Z1 + Z2))*t];
    h1Analytical = 
      Inverse[U1[t]] . H[t] . U1[t] + I*D[Inverse[U1[t]], t] . U1[t] // FS;
    U2[t_] = ME[-I*(Eavg/2*(Z1 + Z2))*t];
    h2Analytical = 
      Inverse[U2[t]] . H[t] . U2[t] + I*D[Inverse[U2[t]], t] . U2[t] // FS;
    
    (*3. Numerical Solution*)
    sol1 = NDSolveValue[{-I*u'[t] == h1Analytical . u[t], 
         u[0] == IdentityMatrix[4]}, u, {t, 0, T}, 
        WorkingPrecision -> 10][T];
    UFinal1 = U1[T] . sol1
    
    sol2 = NDSolveValue[{-I*u'[t] == h2Analytical . u[t], 
         u[0] == IdentityMatrix[4]}, u, {t, 0, T}, 
        Method -> "StiffnessSwitching", WorkingPrecision -> 10, 
        AccuracyGoal -> 10, PrecisionGoal -> 10][T];
    UFinal2 = U2[T] . sol2
    
    (*4. Check Consistency*)
    Print["Fidelity ", Tr[UFinal1\[ConjugateTranspose] . UFinal2]/4];
$\endgroup$
2
  • $\begingroup$ Can you add a bit more background info e.g. why you believe the results should be identical? Also, what's the expected output? This isn't immediately clear at least to me, who isn't quite familiar with quantum physics. $\endgroup$ Commented Aug 20 at 8:38
  • $\begingroup$ @xzczd Sure, I've updated the description. $\endgroup$ Commented Aug 20 at 9:28

0

Your Answer

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.