npx skills add https://github.com/davila7/claude-code-templates --skill qutipQuTiP 提供了用于模拟和分析量子力学系统的全面工具。它能够处理封闭(幺正)和开放(耗散)量子系统,并配备了针对不同场景优化的多种求解器。
uv pip install qutip
用于附加功能的可选包:
# 量子信息处理(电路、门)
uv pip install qutip-qip
# 量子轨迹查看器
uv pip install qutip-qtrl
from qutip import *
import numpy as np
import matplotlib.pyplot as plt
# 创建量子态
psi = basis(2, 0) # |0⟩ 态
# 创建算符
H = sigmaz() # 哈密顿量
# 时间演化
tlist = np.linspace(0, 10, 100)
result = sesolve(H, psi, tlist, e_ops=[sigmaz()])
# 绘制结果
plt.plot(tlist, result.expect[0])
plt.xlabel('时间')
plt.ylabel('⟨σz⟩')
plt.show()
创建和操作量子态及算符:
# 态
psi = basis(N, n) # Fock 态 |n⟩
psi = coherent(N, alpha) # 相干态 |α⟩
rho = thermal_dm(N, n_avg) # 热密度矩阵
# 算符
a = destroy(N) # 湮灭算符
H = num(N) # 粒子数算符
sx, sy, sz = sigmax(), sigmay(), sigmaz() # 泡利矩阵
# 复合系统
psi_AB = tensor(psi_A, psi_B) # 张量积
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
参见 references/core_concepts.md 以获取关于量子对象、态、算符和张量积的全面介绍。
针对不同场景的多种求解器:
# 封闭系统(幺正演化)
result = sesolve(H, psi0, tlist, e_ops=[num(N)])
# 开放系统(耗散)
c_ops = [np.sqrt(0.1) * destroy(N)] # 坍缩算符
result = mesolve(H, psi0, tlist, c_ops, e_ops=[num(N)])
# 量子轨迹(蒙特卡洛)
result = mcsolve(H, psi0, tlist, c_ops, ntraj=500, e_ops=[num(N)])
求解器选择指南:
sesolve: 纯态,幺正演化mesolve: 混合态,耗散,一般开放系统mcsolve: 量子跳跃,光子计数,单个轨迹brmesolve: 弱系统-浴耦合fmmesolve: 时间周期哈密顿量(Floquet)参见 references/time_evolution.md 以获取详细的求解器文档、时间相关哈密顿量和高级选项。
计算物理量:
# 期望值
n_avg = expect(num(N), psi)
# 熵度量
S = entropy_vn(rho) # Von Neumann 熵
C = concurrence(rho) # 纠缠度(两个量子比特)
# 保真度与距离
F = fidelity(psi1, psi2)
D = tracedist(rho1, rho2)
# 关联函数
corr = correlation_2op_1t(H, rho0, taulist, c_ops, A, B)
w, S = spectrum_correlation_fft(taulist, corr)
# 稳态
rho_ss = steadystate(H, c_ops)
参见 references/analysis.md 以获取关于熵、保真度、测量、关联函数和稳态计算的信息。
可视化量子态和动力学:
# Bloch 球
b = Bloch()
b.add_states(psi)
b.show()
# Wigner 函数(相空间)
xvec = np.linspace(-5, 5, 200)
W = wigner(psi, xvec, xvec)
plt.contourf(xvec, xvec, W, 100, cmap='RdBu')
# Fock 分布
plot_fock_distribution(psi)
# 矩阵可视化
hinton(rho) # Hinton 图
matrix_histogram(H.full()) # 3D 条形图
参见 references/visualization.md 以获取关于 Bloch 球动画、Wigner 函数、Q-函数和矩阵可视化的信息。
针对复杂场景的专门技术:
# Floquet 理论(周期哈密顿量)
T = 2 * np.pi / w_drive
f_modes, f_energies = floquet_modes(H, T, args)
result = fmmesolve(H, psi0, tlist, c_ops, T=T, args=args)
# HEOM(非马尔可夫,强耦合)
from qutip.nonmarkov.heom import HEOMSolver, BosonicBath
bath = BosonicBath(Q, ck_real, vk_real)
hsolver = HEOMSolver(H_sys, [bath], max_depth=5)
result = hsolver.run(rho0, tlist)
# 置换不变性(全同粒子)
psi = dicke(N, j, m) # Dicke 态
Jz = jspin(N, 'z') # 集体算符
参见 references/advanced.md 以获取关于 Floquet 理论、HEOM、置换不变性、随机求解器、超算符和性能优化的信息。
# 系统参数
N = 20 # Hilbert 空间维度
omega = 1.0 # 振子频率
kappa = 0.1 # 衰减率
# 哈密顿量和坍缩算符
H = omega * num(N)
c_ops = [np.sqrt(kappa) * destroy(N)]
# 初始态
psi0 = coherent(N, 3.0)
# 时间演化
tlist = np.linspace(0, 50, 200)
result = mesolve(H, psi0, tlist, c_ops, e_ops=[num(N)])
# 可视化
plt.plot(tlist, result.expect[0])
plt.xlabel('时间')
plt.ylabel('⟨n⟩')
plt.title('光子数衰减')
plt.show()
# 创建 Bell 态
psi0 = bell_state('00')
# 每个量子比特上的局域退相位
gamma = 0.1
c_ops = [
np.sqrt(gamma) * tensor(sigmaz(), qeye(2)),
np.sqrt(gamma) * tensor(qeye(2), sigmaz())
]
# 跟踪纠缠
def compute_concurrence(t, psi):
rho = ket2dm(psi) if psi.isket else psi
return concurrence(rho)
tlist = np.linspace(0, 10, 100)
result = mesolve(qeye([2, 2]), psi0, tlist, c_ops)
# 计算每个态的 concurrence
C_t = [concurrence(state.proj()) for state in result.states]
plt.plot(tlist, C_t)
plt.xlabel('时间')
plt.ylabel('Concurrence')
plt.title('纠缠衰减')
plt.show()
# 系统参数
N = 10 # 腔 Fock 空间
wc = 1.0 # 腔频率
wa = 1.0 # 原子频率
g = 0.05 # 耦合强度
# 算符
a = tensor(destroy(N), qeye(2)) # 腔
sm = tensor(qeye(N), sigmam()) # 原子
# 哈密顿量(RWA)
H = wc * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() * sm + a * sm.dag())
# 初始态:腔处于相干态,原子处于基态
psi0 = tensor(coherent(N, 2), basis(2, 0))
# 耗散
kappa = 0.1 # 腔衰减
gamma = 0.05 # 原子衰减
c_ops = [np.sqrt(kappa) * a, np.sqrt(gamma) * sm]
# 可观测量
n_cav = a.dag() * a
n_atom = sm.dag() * sm
# 演化
tlist = np.linspace(0, 50, 200)
result = mesolve(H, psi0, tlist, c_ops, e_ops=[n_cav, n_atom])
# 绘图
fig, axes = plt.subplots(2, 1, figsize=(8, 6), sharex=True)
axes[0].plot(tlist, result.expect[0])
axes[0].set_ylabel('⟨n_cavity⟩')
axes[1].plot(tlist, result.expect[1])
axes[1].set_ylabel('⟨n_atom⟩')
axes[1].set_xlabel('时间')
plt.tight_layout()
plt.show()
sesolve 比 mesolve 更快'cos(w*t)')是最快的e_ops 而不是存储所有态Options 在精度和计算时间之间取得平衡mcsolve 自动使用多个 CPUntraj、Hilbert 空间大小和容差内存问题:减小 Hilbert 空间维度,使用 store_final_state 选项,或考虑 Krylov 方法
模拟速度慢:使用基于字符串的时间依赖性,稍微增加容差,或对于刚性问题尝试 method='bdf'
数值不稳定性:减小时间步长(nsteps 选项),增加容差,或检查哈密顿量/算符是否正确定义
导入错误:确保 QuTiP 安装正确;量子门需要 qutip-qip 包
此技能包含详细的参考文档:
references/core_concepts.md:量子对象、态、算符、张量积、复合系统references/time_evolution.md:所有求解器(sesolve、mesolve、mcsolve、brmesolve 等)、时间相关哈密顿量、求解器选项references/visualization.md:Bloch 球、Wigner 函数、Q-函数、Fock 分布、矩阵图references/analysis.md:期望值、熵、保真度、纠缠度量、关联函数、稳态references/advanced.md:Floquet 理论、HEOM、置换不变性、随机方法、超算符、性能提示每周安装数
122
代码仓库
GitHub 星标数
22.6K
首次出现
2026年1月21日
安全审计
安装于
claude-code106
opencode97
cursor92
gemini-cli90
antigravity87
codex79
QuTiP provides comprehensive tools for simulating and analyzing quantum mechanical systems. It handles both closed (unitary) and open (dissipative) quantum systems with multiple solvers optimized for different scenarios.
uv pip install qutip
Optional packages for additional functionality:
# Quantum information processing (circuits, gates)
uv pip install qutip-qip
# Quantum trajectory viewer
uv pip install qutip-qtrl
from qutip import *
import numpy as np
import matplotlib.pyplot as plt
# Create quantum state
psi = basis(2, 0) # |0⟩ state
# Create operator
H = sigmaz() # Hamiltonian
# Time evolution
tlist = np.linspace(0, 10, 100)
result = sesolve(H, psi, tlist, e_ops=[sigmaz()])
# Plot results
plt.plot(tlist, result.expect[0])
plt.xlabel('Time')
plt.ylabel('⟨σz⟩')
plt.show()
Create and manipulate quantum states and operators:
# States
psi = basis(N, n) # Fock state |n⟩
psi = coherent(N, alpha) # Coherent state |α⟩
rho = thermal_dm(N, n_avg) # Thermal density matrix
# Operators
a = destroy(N) # Annihilation operator
H = num(N) # Number operator
sx, sy, sz = sigmax(), sigmay(), sigmaz() # Pauli matrices
# Composite systems
psi_AB = tensor(psi_A, psi_B) # Tensor product
See references/core_concepts.md for comprehensive coverage of quantum objects, states, operators, and tensor products.
Multiple solvers for different scenarios:
# Closed systems (unitary evolution)
result = sesolve(H, psi0, tlist, e_ops=[num(N)])
# Open systems (dissipation)
c_ops = [np.sqrt(0.1) * destroy(N)] # Collapse operators
result = mesolve(H, psi0, tlist, c_ops, e_ops=[num(N)])
# Quantum trajectories (Monte Carlo)
result = mcsolve(H, psi0, tlist, c_ops, ntraj=500, e_ops=[num(N)])
Solver selection guide:
sesolve: Pure states, unitary evolutionmesolve: Mixed states, dissipation, general open systemsmcsolve: Quantum jumps, photon counting, individual trajectoriesbrmesolve: Weak system-bath couplingfmmesolve: Time-periodic Hamiltonians (Floquet)See references/time_evolution.md for detailed solver documentation, time-dependent Hamiltonians, and advanced options.
Compute physical quantities:
# Expectation values
n_avg = expect(num(N), psi)
# Entropy measures
S = entropy_vn(rho) # Von Neumann entropy
C = concurrence(rho) # Entanglement (two qubits)
# Fidelity and distance
F = fidelity(psi1, psi2)
D = tracedist(rho1, rho2)
# Correlation functions
corr = correlation_2op_1t(H, rho0, taulist, c_ops, A, B)
w, S = spectrum_correlation_fft(taulist, corr)
# Steady states
rho_ss = steadystate(H, c_ops)
See references/analysis.md for entropy, fidelity, measurements, correlation functions, and steady state calculations.
Visualize quantum states and dynamics:
# Bloch sphere
b = Bloch()
b.add_states(psi)
b.show()
# Wigner function (phase space)
xvec = np.linspace(-5, 5, 200)
W = wigner(psi, xvec, xvec)
plt.contourf(xvec, xvec, W, 100, cmap='RdBu')
# Fock distribution
plot_fock_distribution(psi)
# Matrix visualization
hinton(rho) # Hinton diagram
matrix_histogram(H.full()) # 3D bars
See references/visualization.md for Bloch sphere animations, Wigner functions, Q-functions, and matrix visualizations.
Specialized techniques for complex scenarios:
# Floquet theory (periodic Hamiltonians)
T = 2 * np.pi / w_drive
f_modes, f_energies = floquet_modes(H, T, args)
result = fmmesolve(H, psi0, tlist, c_ops, T=T, args=args)
# HEOM (non-Markovian, strong coupling)
from qutip.nonmarkov.heom import HEOMSolver, BosonicBath
bath = BosonicBath(Q, ck_real, vk_real)
hsolver = HEOMSolver(H_sys, [bath], max_depth=5)
result = hsolver.run(rho0, tlist)
# Permutational invariance (identical particles)
psi = dicke(N, j, m) # Dicke states
Jz = jspin(N, 'z') # Collective operators
See references/advanced.md for Floquet theory, HEOM, permutational invariance, stochastic solvers, superoperators, and performance optimization.
# System parameters
N = 20 # Hilbert space dimension
omega = 1.0 # Oscillator frequency
kappa = 0.1 # Decay rate
# Hamiltonian and collapse operators
H = omega * num(N)
c_ops = [np.sqrt(kappa) * destroy(N)]
# Initial state
psi0 = coherent(N, 3.0)
# Time evolution
tlist = np.linspace(0, 50, 200)
result = mesolve(H, psi0, tlist, c_ops, e_ops=[num(N)])
# Visualize
plt.plot(tlist, result.expect[0])
plt.xlabel('Time')
plt.ylabel('⟨n⟩')
plt.title('Photon Number Decay')
plt.show()
# Create Bell state
psi0 = bell_state('00')
# Local dephasing on each qubit
gamma = 0.1
c_ops = [
np.sqrt(gamma) * tensor(sigmaz(), qeye(2)),
np.sqrt(gamma) * tensor(qeye(2), sigmaz())
]
# Track entanglement
def compute_concurrence(t, psi):
rho = ket2dm(psi) if psi.isket else psi
return concurrence(rho)
tlist = np.linspace(0, 10, 100)
result = mesolve(qeye([2, 2]), psi0, tlist, c_ops)
# Compute concurrence for each state
C_t = [concurrence(state.proj()) for state in result.states]
plt.plot(tlist, C_t)
plt.xlabel('Time')
plt.ylabel('Concurrence')
plt.title('Entanglement Decay')
plt.show()
# System parameters
N = 10 # Cavity Fock space
wc = 1.0 # Cavity frequency
wa = 1.0 # Atom frequency
g = 0.05 # Coupling strength
# Operators
a = tensor(destroy(N), qeye(2)) # Cavity
sm = tensor(qeye(N), sigmam()) # Atom
# Hamiltonian (RWA)
H = wc * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() * sm + a * sm.dag())
# Initial state: cavity in coherent state, atom in ground state
psi0 = tensor(coherent(N, 2), basis(2, 0))
# Dissipation
kappa = 0.1 # Cavity decay
gamma = 0.05 # Atomic decay
c_ops = [np.sqrt(kappa) * a, np.sqrt(gamma) * sm]
# Observables
n_cav = a.dag() * a
n_atom = sm.dag() * sm
# Evolve
tlist = np.linspace(0, 50, 200)
result = mesolve(H, psi0, tlist, c_ops, e_ops=[n_cav, n_atom])
# Plot
fig, axes = plt.subplots(2, 1, figsize=(8, 6), sharex=True)
axes[0].plot(tlist, result.expect[0])
axes[0].set_ylabel('⟨n_cavity⟩')
axes[1].plot(tlist, result.expect[1])
axes[1].set_ylabel('⟨n_atom⟩')
axes[1].set_xlabel('Time')
plt.tight_layout()
plt.show()
sesolve for pure states is faster than mesolve'cos(w*t)') is fasteste_ops instead of storing all statesOptionsmcsolve automatically uses multiple CPUsntraj, Hilbert space size, and tolerancesMemory issues : Reduce Hilbert space dimension, use store_final_state option, or consider Krylov methods
Slow simulations : Use string-based time-dependence, increase tolerances slightly, or try method='bdf' for stiff problems
Numerical instabilities : Decrease time steps (nsteps option), increase tolerances, or check Hamiltonian/operators are properly defined
Import errors : Ensure QuTiP is installed correctly; quantum gates require qutip-qip package
This skill includes detailed reference documentation:
references/core_concepts.md : Quantum objects, states, operators, tensor products, composite systemsreferences/time_evolution.md : All solvers (sesolve, mesolve, mcsolve, brmesolve, etc.), time-dependent Hamiltonians, solver optionsreferences/visualization.md : Bloch sphere, Wigner functions, Q-functions, Fock distributions, matrix plotsreferences/analysis.md : Expectation values, entropy, fidelity, entanglement measures, correlation functions, steady statesreferences/advanced.md : Floquet theory, HEOM, permutational invariance, stochastic methods, superoperators, performance tipsWeekly Installs
122
Repository
GitHub Stars
22.6K
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykPass
Installed on
claude-code106
opencode97
cursor92
gemini-cli90
antigravity87
codex79
PPTX 文件处理全攻略:Python 脚本创建、编辑、分析 .pptx 文件内容与结构
899 周安装
Core Data专家指南:构建高性能iOS数据栈,修复崩溃与迁移问题
1,000 周安装
AI 驱动的 PowerPoint 自动化工具:从文章/博客自动生成 PPTX 演示文稿
1,000 周安装
GitHub PRD 撰写与提交指南:15分钟完成产品需求文档和Pull Request
1,000 周安装
Slack GIF制作工具包:创建符合Slack要求的动画GIF,支持消息和表情符号
1,100 周安装
抽奖赢家选取器 - 随机选择工具,支持CSV、Excel、Google Sheets,公平透明
1,000 周安装
Tailwind CSS 实用指南:快速构建响应式设计、深色模式与组件化开发
1,000 周安装