用python的qutip包画出非线性二能级的Landau-Zener系统哈密顿量加上反绝热哈密顿量在基态和激发态的绝热布居数的图
时间: 2023-03-19 11:25:24 浏览: 233
Python绘制热力图示例
4星 · 用户满意度95%
以下是使用qutip包在Python中画出非线性二能级的Landau-Zener系统哈密顿量加上反绝热哈密顿量在基态和激发态的绝热布居数的示例代码:
```python
import numpy as np
from qutip import *
import matplotlib.pyplot as plt
# 定义模型参数
omega = 1.0 # 系统频率
delta = 0.2 # 二能级能量差
eps = 0.1 # 反绝热哈密顿量系数
# 定义哈密顿量
H0 = -delta/2.0 * sigmaz() + omega/2.0 * sigmax() # Landau-Zener 哈密顿量
H1 = eps * sigmax() # 反绝热哈密顿量
H = [H0, [H1, 't']] # 总哈密顿量
# 定义演化时间和时间步长
tlist = np.linspace(0, 10, 200)
dt = tlist[1] - tlist[0]
# 求解演化方程
result = mesolve(H, basis(2,0), tlist, [], [sigmaz(), sigmax()])
# 计算绝热布居数
P0_adiabatic = result.expect[0] # 基态绝热布居数
P1_adiabatic = 1 - P0_adiabatic # 激发态绝热布居数
# 画图
fig, ax = plt.subplots(figsize=(8,6))
ax.plot(tlist, P0_adiabatic, label="Ground state")
ax.plot(tlist, P1_adiabatic, label="Excited state")
ax.set_xlabel('Time')
ax.set_ylabel('Adiabatic population')
ax.legend()
plt.show()
```
代码中使用了`qutip`包来定义二能级系统的哈密顿量,并利用`mesolve`函数求解演化方程。我们还计算了基态和激发态的绝热布居数,并使用`matplotlib`包画出了它们随时间的变化曲线。
注意,以上代码仅是示例,实际应用中需要根据具体问题调整参数和代码。
阅读全文