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内置函数之filter map reduce介绍
Nov 30 Python
Python使用Scrapy爬取妹子图
May 28 Python
python中zip()方法应用实例分析
Apr 16 Python
Python中的Descriptor描述符学习教程
Jun 02 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
如何用itertools解决无序排列组合的问题
May 18 Python
Linux下python制作名片示例
Jul 20 Python
pytest中文文档之编写断言
Sep 12 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
python实现简易版学生成绩管理系统
Jun 22 Python
Python基础之数据结构详解
Apr 28 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.MVC的模板标签系统(五)
2006/09/05 PHP
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
学校食堂标语
2014/10/06 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
委托公证书样本
2015/01/23 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python