Python中qutip用法示例详解


Posted in Python onOctober 02, 2020

前言

QuTip是用于模拟开放量子系统动力学的开源库。QuTip库依赖于的Numpy、Scipy和Cython的数值包。此外,matplotlib提供了图形输出。http://qutip.org/。

python安装比较容易,需要选择一个版本,python2或python3,稍微麻烦的是Scipy。

一、N原子系综自旋概率分布

from qutip import *
import numpy as np
import matplotlib.pyplot as plt

n=2#原子数
j = n//2
psi0 = spin_coherent(j, np.pi/3, 0)#设置系统的初态为自旋相干态

Jp=destroy(2*j+1).dag()#升算符
J_=destroy(2*j+1)#降算符
Jz=(Jp*J_-J_*Jp)/2#Jz

H=Jz**2#系统的哈密顿量

tlist=np.linspace(0,3,100)#时间列表
result=mesolve(H,psi0,tlist)#态随时间的演化

theta=np.linspace(0, np.pi, 50)
phi=np.linspace(0, 2*np.pi, 50)

#分别计算四个状态下的 husimi q函数
Q1, THETA1, PHI1 = spin_q_function(result.states[0], theta, phi)
Q2, THETA2, PHI2 = spin_q_function(result.states[30], theta, phi)
Q3, THETA3, PHI3 = spin_q_function(result.states[60], theta, phi)
Q4, THETA4, PHI4 = spin_q_function(result.states[90], theta, phi)

#在四个子图中分别画出四个状态下的husimi q函数
fig = plt.figure(dpi=150,constrained_layout=1)
ax1 = fig.add_subplot(221,projection='3d')
ax2 = fig.add_subplot(222,projection='3d')
ax3 = fig.add_subplot(223,projection='3d')
ax4 = fig.add_subplot(224,projection='3d')

plot_spin_distribution_3d(Q1, THETA1, PHI1,fig=fig,ax=ax1)
plot_spin_distribution_3d(Q2, THETA2, PHI2,fig=fig,ax=ax2)
plot_spin_distribution_3d(Q3, THETA3, PHI3,fig=fig,ax=ax3)
plot_spin_distribution_3d(Q4, THETA4, PHI4,fig=fig,ax=ax4)

for ax in [ax1,ax2,ax3,ax4]:
 ax.view_init(0.5*np.pi, 0)
 ax.axis('off')#不显示坐标轴

fig.show()

运行结果:

Python中qutip用法示例详解

二、原子与光场相互作用

from qutip import *
import numpy as np
import matplotlib.pyplot as plt

alpha=1#相干光的参数alpha
n=2#原子数
j = n/2

psi0 = tensor(coherent(10,alpha),spin_coherent(j, 0, 0))#设置系统的初态

a=destroy(10)#光场的湮灭算符
a_plus=a.dag()#光场的产生算符
Jp=destroy(n+1).dag()#原子的升算符
J_=destroy(n+1)#原子的降算符
Jx=(Jp+J_)/2#原子的Jx算符
Jy=(Jp-J_)/(2j)#原子的Jy算符,这里的j是虚数单位
Jz=(Jp*J_-J_*Jp)/2#原子的Jz算符

H=tensor(a,Jp)+tensor(a_plus,J_)#系统的哈密顿量
tlist=np.linspace(0,10,1000)#时间列表
result=mesolve(H,psi0,tlist)#态随时间的演化

fig=plt.figure()
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)

ax1.plot(tlist,expect(tensor(qeye(10),Jx),result.states))#Jx的平均值随时间变化图
ax2.plot(tlist,expect(tensor(qeye(10),Jy),result.states))#Jy的平均值随时间变化图
ax3.plot(tlist,expect(tensor(qeye(10),Jz),result.states))#Jz的平均值随时间变化图
ax4.plot(tlist,expect(tensor(qeye(10),Jx**2+Jy**2+Jz*2),result.states))#J平方的平均值随时间变化图

fig.subplots_adjust(top=None,bottom=None,left=None,right=None,wspace=0.4,hspace=0.4)#设置子图间距
fig.show()

运行结果:

Python中qutip用法示例详解

总结

到此这篇关于Python中qutip用法的文章就介绍到这了,更多相关Python qutip用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用python 制作图片转pdf工具
Jan 30 Python
Linux环境下MySQL-python安装过程分享
Feb 02 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Python中time模块和datetime模块的用法示例
Feb 28 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
Python实现的序列化和反序列化二叉树算法示例
Mar 02 Python
Python 的AES加密与解密实现
Jul 09 Python
对django views中 request, response的常用操作详解
Jul 17 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
超级实用的8个Python列表技巧
Aug 24 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 #Python
Python通过fnmatch模块实现文件名匹配
Sep 30 #Python
Python tempfile模块生成临时文件和临时目录
Sep 30 #Python
Python实现定时监测网站运行状态的示例代码
Sep 30 #Python
python如何实现word批量转HTML
Sep 30 #Python
Python识别验证码的实现示例
Sep 30 #Python
Python列表嵌套常见坑点及解决方案
Sep 30 #Python
You might like
PHP array_push 数组函数
2009/12/26 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
php实现登陆模块功能示例
2016/10/20 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
对于Python的框架中一些会话程序的管理
2015/04/20 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python读写docx文件的方法
2018/05/08 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
教师实习自我鉴定
2013/12/14 职场文书
社区志愿者心得体会
2014/01/03 职场文书
数字化校园建设方案
2014/05/03 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫