使用 QuTiP 的 mesolve 函数写一篇代码画出二能级系统哈密顿量加上反绝热哈密顿量构成新的哈密顿量随时间演化的布居数转移图
时间: 2023-03-19 12:22:51 浏览: 146
好的,下面是使用 QuTiP 的 `mesolve` 函数画出二能级系统哈密顿量加上反绝热哈密顿量构成新的哈密顿量随时间演化的布居数转移图的代码。
首先,我们需要导入必要的库:QuTiP、NumPy 和 Matplotlib。
```python
import numpy as np
import matplotlib.pyplot as plt
from qutip import *
```
接下来,我们定义二能级系统的哈密顿量和反绝热哈密顿量:
```python
# 二能级系统的哈密顿量
H0 = qeye(2) * 0.5 * np.pi
# 反绝热哈密顿量
H1 = sigmaz()
```
然后,我们定义系统的初态和时间演化参数:
```python
# 初态
psi0 = basis(2, 0)
# 时间演化参数
tlist = np.linspace(0, 5, 100)
```
接着,我们使用 `mesolve` 函数来求解系统的时间演化:
```python
# 新哈密顿量
H = [H0, [H1, 'np.pi/2']]
# 求解系统的时间演化
result = mesolve(H, psi0, tlist, [], [sigmaz(), sigmay() * 0.5])
```
其中,`[H1, 'np.pi/2']` 表示在 $t=\pi/2$ 时反绝热哈密顿量起作用。`[]` 表示系统不进行任何测量,`[sigmaz(), sigmay() * 0.5]` 表示测量算符为 $\sigma_z$ 和 $\sigma_y/2$。
最后,我们画出布居数转移图:
```python
# 画图
plt.plot(tlist, result.expect[0], label=r'$\langle \sigma_z \rangle$')
plt.plot(tlist, result.expect[1], label=r'$\langle \sigma_y \rangle$')
plt.legend()
plt.xlabel('Time')
plt.ylabel('Expectation values')
plt.show()
```
完整的代码如下: