把上边的 写成指数形式, 并考虑到 丢掉两频率加和项,也就是运用旋转波近似(RWA),可得到:可见,相互作用绘景下,系统的Hamiltonian仍然显含时间,研究不便。 我们可以通过适当选取绘景,把系统Hamiltonian中的时间去掉。引入一个算符: 则可求得对应的绘景变换后的Hamiltonian为:3. 求解运动方程—— ——含时Schrödinger方程对角化后的Hamiltonian的时间演化算符可变换为三个矩阵乘积:注意,我们的初态是变换前的,所以需要添上绘景变换的俩矩阵:这样,给定初态,我们就可以愉快的求解整个系统随时间的变化了:这就是所谓的谱方法,我们使用一套本征值,五个矩阵都是不变的,一次性算好即可。要传播多久就做多少次矩阵乘法。此问题还可以用split operator方法求解。我第一次学习的时候忘了包括俩绘景变换矩阵,做出来结果不对,一着急就用下边的QuTip求解了。这几天才想明白。设初始态为激发态 , , , ,求得系统处于激发态的概率:求解这个系统随时间演化,用QuTip更为方便(为了跟上边不同,初始态选取为基态,求的是基态概率随时间演化):import qutip as qt # parameters of the Hamiltonian Omega = 1.0 #Rabi freq delta0 = 0 #detuning delta1 = Omega #the time−indepdendent hamiltonians H0 = (delta0/2)*qt.sigmaz() - (Omega/2)*qt.sigmax() H1 = (delta1/2)*qt.sigmaz() - (Omega/2)*qt.sigmax()
t0 = 0 t1 = 20 N=1.0E4 tlist = np.linspace(t0, t1, N)
#expectation values to compute over evolution proj1 = qt.basis(2,0)*qt.basis(2,0).dag() e_ops = [ proj1]
## Start from ground state: psi0 = qt.basis(2,0)
result0 = qt.mesolve(H0, psi0 , tlist , c_ops=[], e_ops=e_ops) result1 = qt.mesolve(H1, psi0 , tlist , c_ops=[], e_ops=e_ops)
plt.plot(tlist, result0.expect[0],'-',lw=3) plt.plot( tlist , result1.expect[0],'--',lw=3)
plt.xlabel(r'Time ($1/\Omega$)') plt.ylabel(r'$P(1)$') plt.legend([ r'$ \delta = 0$', 'delta = Omega']) plt.title('Ground−state probability in RWA') plt.savefig('RWA_qutip.png',format='png',dpi=300) plt.show() (前一个处理方法中)使用interaction picture,再加上旋波近似(RWA),会得到一个新的含时哈密顿和相应的TDSE: 所以我们仍然可以暴力求解这个TDSE。且比上一节简单,只需要计算三个矩阵乘积即可:但是需要注意,此时两个用于对角化的Unitary变换矩阵是含时的。态随时间演化就变成:并且考虑一个有趣的含时 :直接积分,可以得到所谓的(Di-)Adiabatic passages:import numpy as np %matplotlib inline import matplotlib.pyplot as plt import qutip as qt
Omega = 1.0 H0 = 0*qt.identity(2)
def delta_linear(t, d0, t0): return d0*(t/t0)
def sigmaPlusCoeff(t, d0, t0): return -(Omega/2)*np.exp(1j*delta_linear(t, d0, t0)*t) def sigmaMinusCoeff(t,d0, t0): return np.conj(sigmaPlusCoeff(t, d0, t0)) sPlus = qt.basis(2,0)*qt.basis(2,1).dag() sMinus= qt.basis(2,1)*qt.basis(2,0).dag()
d0 = 100*Omega t0 = 10*Omega
spFast = lambda t, args: sigmaPlusCoeff(t, d0, t0) smFast = lambda t, args: np.conj(spFast(t, args))
hlist = [H0, [sPlus, spFast],[sMinus, smFast]]
tstart = -t0 tstop = t0 N = 1.0E4 tlist = np.linspace(tstart, tstop, N)
proj1 = qt.basis(2,0)*qt.basis(2,0).dag()
e_ops = [proj1]
psi0 = qt.basis(2,0)
result = qt.mesolve(hlist, psi0, tlist, c_ops=[], e_ops = e_ops) plt.plot(tlist, result.expect[0],'-',lw=3)
plt.show() 如果 更大,则可以得到更加接近准经典近似的结果:此时,一定有爱问知识的小伙伴想知道,如果在相互作用绘景里,不使用RWA,结果会有什么变化呢?这就来一下:此时相应的对角化后的时间演化矩阵和对角化矩阵、逆矩阵都随时间变化,求解如下:参数设置为(此时 ,为常数):比较RWA结果和精确解,微小的振动就是所谓的Rabi oscillation:量子光学与量子技术zhuanlan.zhihu.com
|