Langkau ke kandungan utama
Projek ini dalam fasa beta. Jumpa pepijat? Buat isu GitHub. Ada soalan atau idea? Tanya dalam Discussions β€” kami suka dengar maklum balas anda!
Bagaimana kualiti terjemahan pada halaman ini?

Plot keadaan kuantum

Versi pakej

Kod pada halaman ini dibangunkan menggunakan keperluan berikut. Kami mengesyorkan penggunaan versi ini atau yang lebih baharu.

qiskit[all]~=2.5.2

Dalam banyak situasi β€” seperti pembelajaran atau penyahpepijatan β€” adalah berguna untuk memvisualisasikan keadaan komputer kuantum. Di sini kami andaikan anda sudah mempunyai keadaan tertentu daripada simulasi atau tomografi keadaan. Hanya keadaan sistem kuantum yang kecil sahaja yang boleh dilihat.

Menggunakan output daripada fungsi

Semua fungsi pada halaman ini mengembalikan objek yang kaya. Apabila baris terakhir sel kod mengeluarkan objek ini, notebook Jupyter akan memaparkannya di bawah sel. Jika anda memanggil fungsi ini dalam persekitaran lain atau dalam skrip, anda perlu memaparkan atau menyimpan output secara eksplisit.

Kebanyakan fungsi mengembalikan imej, yang merupakan objek matplotlib.Figure. Terdapat dua pilihan:

  • Panggil .show() pada objek yang dikembalikan untuk membuka imej dalam tetingkap baharu (dengan syarat backend matplotlib yang dikonfigurasikan bersifat interaktif).
  • Panggil .savefig("out.png") untuk menyimpan rajah ke out.png dalam direktori kerja semasa. Kaedah savefig() menerima laluan supaya anda boleh menyesuaikan lokasi dan nama fail output. Contohnya, plot_state_city(psi).savefig("out.png").

Output LaTeX adalah objek IPython.display.Latex. Pilihan terbaik dalam persekitaran bukan-Jupyter adalah untuk mengelakkan output ini dengan sama ada mencetak keadaan untuk perwakilan teks, atau beralih kepada drawer latex_source untuk mendapatkan rentetan sumber LaTeX.

Keadaan kuantum adalah sama ada matriks ketumpatan ρ\rho (matriks Hermitian) atau statevector ∣ψ⟩|\psi\rangle (vektor kompleks). Matriks ketumpatan berkaitan dengan statevector melalui

ρ=∣ψ⟩⟨ψ∣,\rho = |\psi\rangle\langle \psi|,

dan lebih umum, kerana ia boleh mewakili keadaan campuran (hasil tambah positif statevector)

ρ=βˆ‘kpk∣ψk⟩⟨ψk∣.\rho = \sum_k p_k |\psi_k\rangle\langle \psi_k |.

Qiskit mewakili keadaan kuantum melalui kelas Statevector dan DensityMatrix serta menyediakan banyak fungsi visualisasi. Lihat bahagian selepas sel kod berikut untuk melihat bagaimana fungsi visualisasi berbeza Qiskit memplot keadaan kuantum berikut.

# Added by doQumentation β€” installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit": "qiskit"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from math import pi
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector

# Create a Bell state for demonstration
qc = QuantumCircuit(2)
qc.h(0)
qc.crx(pi / 2, 0, 1)
psi = Statevector(qc)

Walaupun bukan secara teknikalnya sebuah "plot", Qiskit boleh merender perwakilan LaTeX bagi objek Statevector dan DensityMatrix yang dipaparkan dengan cantik dalam notebook Jupyter. Ini mengikuti konvensyen matematik standard untuk menuliskan keadaan kuantum. Baca lebih lanjut dalam Asas maklumat kuantum: Sistem tunggal.

Secara lalai, statevector dipaparkan dalam "notasi ket", manakala matriks ketumpatan dipaparkan sebagai matriks 2Γ—2.

Anda juga boleh menggantikan "latex" dengan "latex_source" untuk mendapatkan rentetan LaTeX mentah.

psi.draw("latex") # psi is a Statevector object

22∣00⟩+12∣01βŸ©βˆ’i2∣11⟩\frac{\sqrt{2}}{2} |00\rangle+\frac{1}{2} |01\rangle- \frac{i}{2} |11\rangle

from qiskit.quantum_info import DensityMatrix

DensityMatrix(psi).draw("latex") # convert to a DensityMatrix and draw
[122402i424140i40000βˆ’2i4βˆ’i4014] \begin{bmatrix} \frac{1}{2} & \frac{\sqrt{2}}{4} & 0 & \frac{\sqrt{2} i}{4} \\ \frac{\sqrt{2}}{4} & \frac{1}{4} & 0 & \frac{i}{4} \\ 0 & 0 & 0 & 0 \\ - \frac{\sqrt{2} i}{4} & - \frac{i}{4} & 0 & \frac{1}{4} \\ \end{bmatrix}
from qiskit.visualization import plot_state_city

plot_state_city(psi)
# Alternative: psi.draw("city")

Output of the previous code cell

from qiskit.visualization import plot_state_hinton

plot_state_hinton(psi)
# Alternative: psi.draw("hinton")

Output of the previous code cell

from qiskit.visualization import plot_state_paulivec

plot_state_paulivec(psi)
# Alternative: psi.draw("paulivec")

Output of the previous code cell

from qiskit.quantum_info import SparsePauliOp

SparsePauliOp.from_operator(psi)
SparsePauliOp(['II', 'IX', 'XY', 'YI', 'YX', 'YZ', 'ZI', 'ZX', 'ZZ'],
coeffs=[ 0.25 +0.j, 0.1767767+0.j, -0.1767767+0.j, -0.125 +0.j,
-0.1767767+0.j, 0.125 +0.j, 0.125 +0.j, 0.1767767+0.j,
0.125 +0.j])
from qiskit.visualization import plot_state_qsphere

plot_state_qsphere(psi)
# Alternative: psi.draw("qsphere")

Output of the previous code cell

from qiskit.visualization import plot_bloch_multivector

plot_bloch_multivector(psi)
# Alternative: psi.draw("bloch")

Output of the previous code cell

Pilihan untuk fungsi plot keadaan​

Semua fungsi plot keadaan menerima argumen berikut (kecuali drawer LaTeX, yang tidak mengembalikan rajah Matplotlib, dan plot_state_qsphere, yang hanya menerima figsize):

  • title (str): rentetan untuk tajuk plot, dipaparkan di bahagian atas plot
  • figsize (tuple): saiz rajah dalam inci (lebar, tinggi)

Fungsi plot_state_city dan plot_state_paulivec juga menerima argumen color (senarai rentetan) yang menentukan warna bar. Lihat dokumentasi API untuk maklumat lanjut.

Langkah seterusnya​

Cadangan