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获取糗百图片代码实例
Dec 18 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
May 04 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
运动检测ViBe算法python实现代码
Jan 09 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
python3反转字符串的3种方法(小结)
Nov 07 Python
Python matplotlib实时画图案例
Apr 23 Python
python开发实时可视化仪表盘的示例
May 07 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
Python装饰器详细介绍
Mar 25 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php利用header函数下载各种文件
2016/08/24 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
django 修改server端口号的方法
2018/05/14 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
幼师专业求职推荐信
2013/11/08 职场文书
出生公证书样本
2014/04/04 职场文书
节约能源标语
2014/06/17 职场文书
代理词怎么写
2015/05/25 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
严以用权学习心得体会
2016/01/12 职场文书