用python写一篇代码画出由二能级系统哈密顿量加上反绝热哈密顿量构成的新哈密顿量随时间演化的布居数转移图
时间: 2023-03-20 12:00:38 浏览: 53
以下是一个简单的Python程序,用于计算二能级系统哈密顿量和反绝热哈密顿量的演化,并绘制布居数转移图:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义二能级系统哈密顿量和反绝热哈密顿量的参数
E0 = 0.0
E1 = 1.0
T = 1.0
omega = np.pi / T
delta = 0.1
# 定义时间的范围和时间步长
t_max = 10.0 * T
dt = 0.01 * T
N = int(t_max / dt) + 1
t = np.linspace(0, t_max, N)
# 初始化二能级系统的波函数
psi = np.zeros((N, 2), dtype=np.complex_)
psi[0, 0] = 1.0
# 计算哈密顿量矩阵
H0 = np.array([[E0, 0.0], [0.0, E1]])
H1 = delta * np.array([[0.0, np.exp(-1j * omega * t[0])],
[np.exp(1j * omega * t[0]), 0.0]])
H = H0 + H1
# 对哈密顿量进行时间演化
for i in range(1, N):
H1 = delta * np.array([[0.0, np.exp(-1j * omega * t[i])],
[np.exp(1j * omega * t[i]), 0.0]])
H = H0 + H1
U = np.exp(-1j * H * dt)
psi[i] = U @ psi[i-1]
# 绘制布居数转移图
plt.plot(t, np.abs(psi[:, 0])**2, label='|0>')
plt.plot(t, np.abs(psi[:, 1])**2, label='|1>')
plt.xlabel('Time')
plt.ylabel('Population')
plt.legend()
plt.show()
```
在这个程序中,我们首先定义了二能级系统哈密顿量和反绝热哈密顿量的参数,包括基态能量 $E_0$,激发态能量 $E_1$,周期 $T$,频率 $\omega=\pi/T$,以及反绝热哈密顿量的大小 $\delta$。然后,我们定义了时间的范围和时间步长,并初始化了二能级系统的波函数。接下来,我们计算了哈密顿量矩阵 $H = H_0 + H_1$,其中 $H_0$ 是二能级系统的哈密顿量矩阵,$H_1$ 是反绝热哈密顿量矩阵。然后,我们对哈密顿量进行时间演化,使用了一个简单的数值积分方法来计算时间演化算符 $U = \exp(-i H \Delta t)$。最后,我们绘制了布居数转移图,显示了系统在基态和激发态之间的布居数随