Pada pelajaran sebelumnya, kita sudah melihat pertama kali kelas Statevector dan Operator di Qiskit, dan menggunakannya untuk mensimulasikan operasi dan pengukuran pada qubit tunggal.
Di bagian ini, kita akan menggunakan kelas-kelas ini untuk mengeksplorasi perilaku beberapa qubit.
# Added by doQumentation β required packages for this notebook !pip install -q numpy qiskit
from qiskit import __version__ print(__version__)
2.1.1
Kita akan mulai dengan mengimpor kelas Statevector dan Operator, serta fungsi akar kuadrat dari NumPy.
Selanjutnya, secara umum, kita akan mengurus semua impor yang diperlukan terlebih dahulu dalam setiap pelajaran.
from qiskit.quantum_info import Statevector, Operator from numpy import sqrt
Kelas Statevector memiliki metode tensor, yang mengembalikan perkalian tensor dari Statevector tersebut dengan yang lain, diberikan sebagai argumen.
Argumen diinterpretasikan sebagai faktor tensor di sebelah kanan.
Kelas Operator juga memiliki metode tensor (serta metode from_label), seperti yang kita lihat dalam contoh-contoh berikut.
H = Operator.from_label("H") Id = Operator.from_label("I") X = Operator.from_label("X") display(H.tensor(Id).draw("latex")) display(H.tensor(Id).tensor(X).draw("latex"))
Pada pelajaran sebelumnya, kita menggunakan metode measure untuk mensimulasikan pengukuran vektor keadaan kuantum.
Metode ini mengembalikan dua item: hasil pengukuran yang disimulasikan, dan Statevector baru setelah pengukuran tersebut.
Secara default, measure mengukur semua qubit dalam vektor keadaan.
Kita juga bisa memberikan daftar bilangan bulat sebagai argumen, yang menyebabkan hanya indeks qubit tersebut yang diukur.
Untuk mendemonstrasikan ini, kode di bawah membuat keadaan
dan mengukur qubit nomor 0, yang merupakan qubit paling kanan.
(Qiskit menomori qubit mulai dari 0, dari kanan ke kiri. Kita akan kembali ke konvensi penomoran ini pada pelajaran berikutnya.)
w = Statevector([0,1,1,0,1,0,0,0]/ sqrt(3)) display(w.draw("latex")) result, state = w.measure([0]) print(f"Measured: {result}\nState after measurement:") display(state.draw("latex")) result, state = w.measure([0,1]) print(f"Measured: {result}\nState after measurement:") display(state.draw("latex"))