Plot state kuantum
Versi paket
Kode di halaman ini dikembangkan menggunakan persyaratan berikut. Kami menyarankan menggunakan versi ini atau yang lebih baru.
qiskit[all]~=2.3.0
Dalam banyak situasi β seperti saat belajar atau debugging β sangat membantu untuk memvisualisasikan state komputer kuantum. Di sini kita asumsikan kamu sudah memiliki state tertentu dari simulasi atau state tomography. Kita hanya bisa melihat state sistem kuantum yang kecil.
Semua fungsi di halaman ini mengembalikan objek yang kaya. Ketika baris terakhir sel kode menghasilkan objek-objek ini, Jupyter notebooks akan menampilkannya di bawah sel. Jika kamu memanggil fungsi-fungsi ini di lingkungan lain atau dalam skrip, kamu perlu menampilkan atau menyimpan outputnya secara eksplisit.
Sebagian besar fungsi mengembalikan gambar, yaitu objek matplotlib.Figure. Dua opsi yang tersedia:
- Panggil
.show()pada objek yang dikembalikan untuk membuka gambar di jendela baru (dengan asumsi backend matplotlib yang dikonfigurasi bersifat interaktif). - Panggil
.savefig("out.png")untuk menyimpan gambar keout.pngdi direktori kerja saat ini. Metodesavefig()menerima path sehingga kamu bisa menyesuaikan lokasi dan nama file tempat menyimpan output. Misalnya,plot_state_city(psi).savefig("out.png").
Output LaTeX adalah objek IPython.display.Latex. Opsi terbaik di lingkungan non-Jupyter adalah menghindari output ini dengan cara mencetak state untuk representasi teks, atau beralih ke drawer latex_source untuk mengembalikan string sumber LaTeX.
State kuantum bisa berupa matriks densitas (matriks Hermitian) atau statevector (vektor kompleks). Matriks densitas berkaitan dengan statevector melalui
dan lebih umum karena bisa merepresentasikan mixed states (jumlah positif statevector)
Qiskit merepresentasikan state kuantum melalui kelas Statevector dan DensityMatrix serta menyediakan banyak fungsi visualisasi. Lihat bagian-bagian setelah sel kode berikut untuk melihat bagaimana berbagai fungsi visualisasi Qiskit memplot state kuantum berikut ini.
# Added by doQumentation β required packages for this notebook
!pip install -q qiskit
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)
- LaTeX
- City
- Hinton
- Vektor Pauli
- Qsphere
- Bloch
Meski secara teknis bukan "plot", Qiskit bisa merender representasi LaTeX dari objek Statevector maupun DensityMatrix yang tampil dengan baik di Jupyter notebooks. Representasi ini mengikuti konvensi matematika standar untuk menuliskan state kuantum. Baca lebih lanjut di Dasar-dasar informasi kuantum: Sistem tunggal.
Statevector menggunakan "notasi ket" secara default, sedangkan matriks densitas ditampilkan sebagai matriks 2Γ2.
Kamu juga bisa mengganti "latex" dengan "latex_source" untuk mendapatkan string LaTeX mentah.
Plot ini menampilkan bagian real dan imajiner dari setiap elemen matriks densitas dalam dua diagram batang tiga dimensi. Disebut plot "city" karena batang-batangnya menyerupai gedung pencakar langit di sebuah kota. State yang kita plot memiliki matriks densitas berikut.
Lihat dokumentasi API untuk informasi lebih lanjut.
Plot ini sangat mirip dengan plot "city", namun besarnya setiap elemen direpresentasikan oleh ukuran kotak, bukan tinggi batang. Kotak putih mewakili elemen dengan nilai positif, dan kotak hitam mewakili elemen dengan nilai negatif. State yang kita plot memiliki matriks densitas berikut.
Lihat dokumentasi API untuk informasi lebih lanjut.
Observable adalah cara mengukur state kuantum sedemikian rupa sehingga hasil pengukuran yang mungkin adalah bilangan real. Nilai yang diharapkan dari hasil tersebut juga dikenal sebagai nilai ekspektasi observable pada state itu, dan bisa dianggap sebagai rata-rata dari pengamatan tak terbatas terhadap state tersebut.
Produk tensor dari matriks Pauli semuanya merupakan observable yang menghasilkan +1 atau -1. Plot ini menampilkan nilai ekspektasi state pada berbagai operator Pauli sebagai diagram batang. Semua matriks densitas bisa ditulis sebagai jumlah matriks Pauli ini, dikalikan bobotnya masing-masing berdasarkan nilai ekspektasinya.
Sebagai contoh, state ini bisa ditulis sebagai jumlah dari suku-suku:
Kamu juga bisa menghitung koefisien-koefisien ini menggunakan SparsePauliOp.
Lihat dokumentasi API untuk informasi lebih lanjut.
"QSphere" adalah tampilan state kuantum unik dari Qiskit di mana amplitudo dan fase dari setiap elemen dalam statevector diplot pada permukaan bola. Ketebalan setiap titik merepresentasikan amplitudo, dan warnanya merepresentasikan fase. Untuk mixed states, akan ditampilkan bola untuk setiap komponen.
Lihat dokumentasi API untuk informasi lebih lanjut.
Vektor Bloch dari state Qubit adalah nilai ekspektasinya dalam observable Pauli X, Y, dan Z yang dipetakan ke sumbu X, Y, dan Z dalam ruang tiga dimensi. Plot ini memproyeksikan state kuantum multi-Qubit ke ruang Qubit tunggal dan memplot setiap Qubit pada bola Bloch. Visualisasi ini hanya menampilkan nilai ekspektasi dari Qubit individual. Plot ini tidak bisa menunjukkan korelasi antar Qubit sehingga tidak bisa sepenuhnya mendeskripsikan state kuantum yang terjalin (entangled).
Lihat dokumentasi API untuk informasi lebih lanjut.
psi.draw("latex") # psi is a Statevector object