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 Requests安装与简单运用
Apr 07 Python
快速入门python学习笔记
Dec 06 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
python 实现视频流下载保存MP4的方法
Jan 09 Python
Python3几个常见问题的处理方法
Feb 26 Python
python装饰器练习题及答案
Nov 01 Python
python 监测内存和cpu的使用率实例
Nov 28 Python
Python hashlib常见摘要算法详解
Jan 13 Python
python数据爬下来保存的位置
Feb 17 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
python代码实现图书管理系统
Nov 30 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无法连接mysql数据库的正确解决方法
2016/07/01 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
用JS剩余字数计算的代码
2008/07/03 Javascript
Javascript this关键字使用分析
2008/10/21 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
Python实现带百分比的进度条
2016/06/28 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
单位消防安全制度
2014/01/12 职场文书
个性发展自我评价
2014/02/11 职场文书
白酒营销策划方案
2014/08/17 职场文书
关于运动会的广播稿
2015/08/19 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis