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 获取文件列表(或是目录例表)
Mar 25 Python
python使用三角迭代计算圆周率PI的方法
Mar 20 Python
Python可变参数函数用法实例
Jul 07 Python
python抓取网页中图片并保存到本地
Dec 01 Python
开源Web应用框架Django图文教程
Mar 09 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
利用aardio给python编写图形界面
Aug 21 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
解决Django加载静态资源失败的问题
Jul 28 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 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
简单的过滤字符串中的HTML标记
2006/12/25 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
python进行两个表格对比的方法
2018/06/27 Python
python多任务及返回值的处理方法
2019/01/22 Python
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
大学生党员个人剖析材料
2014/10/08 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
长城英文导游词
2015/01/30 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
感恩教育观后感
2015/06/17 职场文书