Qutip

zLanqing/codex-claude-academic-skills/scientific-toolkit-skill/references/scientific-skills/qutip

作者 zLanqing7ed6377f0efb6a38951b48ef03b19d996e454b1fBSD-3-Clause license收錄於 2026年10月9日更新於 2026年10月9日

Quantum physics simulation library for open quantum systems. Use when studying master equations, Lindblad dynamics, decoherence, quantum optics, or cavity QED. Best for physics research, open system dynamics, and educational simulations. NOT for circuit-based quantum computing—use qiskit, cirq, or pennylane for quantum algorithms and hardware execution.

AI 產生的概覽

指導使用 QuTiP 進行量子物理模擬,涵蓋開放與封閉量子系統、求解器與分析。

功能
此技能提供使用 QuTiP Python 函式庫模擬量子力學系統的說明與參考資料。內容涵蓋建立量子態與算符、執行 sesolve、mesolve、mcsolve 等時間演化求解器,以及計算熵、保真度、關聯函數與穩態等物理量。它也介紹布洛赫球、維格納函數與矩陣圖等視覺化方式,以及 Floquet 理論與 HEOM 等進階方法。
適用情境
適用於研究主方程、Lindblad 動力學、退相干、量子光學或腔量子電動力學。它面向物理研究、開放系統動力學與教學模擬。不適用於以電路為基礎的量子計算,文件建議此類用途改用 qiskit、cirq 或 pennylane。
執行需求
需要 QuTiP Python 套件,例如透過 uv pip install qutip 安裝,範例還需要 NumPy 與 Matplotlib。選用套件 qutip-qip 與 qutip-qtrl 分別提供量子資訊處理與軌跡檢視功能。此技能不附帶指令碼,僅為說明文件與參考資料。

QuTiP: Quantum Toolbox in Python

Overview

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.

Installation

bash
uv pip install qutip

Optional packages for additional functionality:

bash
# Quantum information processing (circuits, gates)uv pip install qutip-qip
# Quantum trajectory vieweruv pip install qutip-qtrl

Quick Start

python
from qutip import *import numpy as npimport matplotlib.pyplot as plt
# Create quantum statepsi = basis(2, 0)  # |0⟩ state
# Create operatorH = sigmaz()  # Hamiltonian
# Time evolutiontlist = np.linspace(0, 10, 100)result = sesolve(H, psi, tlist, e_ops=[sigmaz()])
# Plot resultsplt.plot(tlist, result.expect[0])plt.xlabel('Time')plt.ylabel('⟨σz⟩')plt.show()

Core Capabilities

1. Quantum Objects and States

Create and manipulate quantum states and operators:

python
# Statespsi = basis(N, n)  # Fock state |n⟩psi = coherent(N, alpha)  # Coherent state |α⟩rho = thermal_dm(N, n_avg)  # Thermal density matrix
# Operatorsa = destroy(N)  # Annihilation operatorH = num(N)  # Number operatorsx, sy, sz = sigmax(), sigmay(), sigmaz()  # Pauli matrices
# Composite systemspsi_AB = tensor(psi_A, psi_B)  # Tensor product

See references/core_concepts.md for comprehensive coverage of quantum objects, states, operators, and tensor products.

2. Time Evolution and Dynamics

Multiple solvers for different scenarios:

python
# 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 operatorsresult = 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 evolution
  • mesolve: Mixed states, dissipation, general open systems
  • mcsolve: Quantum jumps, photon counting, individual trajectories
  • brmesolve: Weak system-bath coupling
  • fmmesolve: Time-periodic Hamiltonians (Floquet)

See references/time_evolution.md for detailed solver documentation, time-dependent Hamiltonians, and advanced options.

3. Analysis and Measurement

Compute physical quantities:

python
# Expectation valuesn_avg = expect(num(N), psi)
# Entropy measuresS = entropy_vn(rho)  # Von Neumann entropyC = concurrence(rho)  # Entanglement (two qubits)
# Fidelity and distanceF = fidelity(psi1, psi2)D = tracedist(rho1, rho2)
# Correlation functionscorr = correlation_2op_1t(H, rho0, taulist, c_ops, A, B)w, S = spectrum_correlation_fft(taulist, corr)
# Steady statesrho_ss = steadystate(H, c_ops)

See references/analysis.md for entropy, fidelity, measurements, correlation functions, and steady state calculations.

4. Visualization

Visualize quantum states and dynamics:

python
# Bloch sphereb = 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 distributionplot_fock_distribution(psi)
# Matrix visualizationhinton(rho)  # Hinton diagrammatrix_histogram(H.full())  # 3D bars

See references/visualization.md for Bloch sphere animations, Wigner functions, Q-functions, and matrix visualizations.

5. Advanced Methods

Specialized techniques for complex scenarios:

python
# Floquet theory (periodic Hamiltonians)T = 2 * np.pi / w_drivef_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, BosonicBathbath = 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 statesJz = jspin(N, 'z')  # Collective operators

See references/advanced.md for Floquet theory, HEOM, permutational invariance, stochastic solvers, superoperators, and performance optimization.

Common Workflows

Simulating a Damped Harmonic Oscillator

python
# System parametersN = 20  # Hilbert space dimensionomega = 1.0  # Oscillator frequencykappa = 0.1  # Decay rate
# Hamiltonian and collapse operatorsH = omega * num(N)c_ops = [np.sqrt(kappa) * destroy(N)]
# Initial statepsi0 = coherent(N, 3.0)
# Time evolutiontlist = np.linspace(0, 50, 200)result = mesolve(H, psi0, tlist, c_ops, e_ops=[num(N)])
# Visualizeplt.plot(tlist, result.expect[0])plt.xlabel('Time')plt.ylabel('⟨n⟩')plt.title('Photon Number Decay')plt.show()

Two-Qubit Entanglement Dynamics

python
# Create Bell statepsi0 = bell_state('00')
# Local dephasing on each qubitgamma = 0.1c_ops = [    np.sqrt(gamma) * tensor(sigmaz(), qeye(2)),    np.sqrt(gamma) * tensor(qeye(2), sigmaz())]
# Track entanglementdef 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 stateC_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()

Jaynes-Cummings Model

python
# System parametersN = 10  # Cavity Fock spacewc = 1.0  # Cavity frequencywa = 1.0  # Atom frequencyg = 0.05  # Coupling strength
# Operatorsa = tensor(destroy(N), qeye(2))  # Cavitysm = 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 statepsi0 = tensor(coherent(N, 2), basis(2, 0))
# Dissipationkappa = 0.1  # Cavity decaygamma = 0.05  # Atomic decayc_ops = [np.sqrt(kappa) * a, np.sqrt(gamma) * sm]
# Observablesn_cav = a.dag() * an_atom = sm.dag() * sm
# Evolvetlist = np.linspace(0, 50, 200)result = mesolve(H, psi0, tlist, c_ops, e_ops=[n_cav, n_atom])
# Plotfig, 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()

Tips for Efficient Simulations

  1. Truncate Hilbert spaces: Use smallest dimension that captures dynamics
  2. Choose appropriate solver: sesolve for pure states is faster than mesolve
  3. Time-dependent terms: String format (e.g., 'cos(w*t)') is fastest
  4. Store only needed data: Use e_ops instead of storing all states
  5. Adjust tolerances: Balance accuracy with computation time via Options
  6. Parallel trajectories: mcsolve automatically uses multiple CPUs
  7. Check convergence: Vary ntraj, Hilbert space size, and tolerances

Troubleshooting

Memory 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

References

This skill includes detailed reference documentation:

  • references/core_concepts.md: Quantum objects, states, operators, tensor products, composite systems
  • references/time_evolution.md: All solvers (sesolve, mesolve, mcsolve, brmesolve, etc.), time-dependent Hamiltonians, solver options
  • references/visualization.md: Bloch sphere, Wigner functions, Q-functions, Fock distributions, matrix plots
  • references/analysis.md: Expectation values, entropy, fidelity, entanglement measures, correlation functions, steady states
  • references/advanced.md: Floquet theory, HEOM, permutational invariance, stochastic methods, superoperators, performance tips

External Resources

來源與署名

來源:zLanqing/codex-claude-academic-skills位於scientific-toolkit-skill/references/scientific-skills/qutip提交7ed6377

授權條款: BSD-3-Clause license

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架