Qiskitで状態ベクトルを確認する(statevector_simulator)
Qiskitで量子回路を構築した後、量子ビットがどのような状態になっているかを確認したい場合がある。
statevector_simulator
はAer
によりバックエンドとして提供され、量子ビットの状態を状態ベクトルとして出力することができる。
Simulators — Qiskit 0.43.1 documentation
qiskit.result.Result.get_statevector — Qiskit 0.43.1 documentation
例えば、0番目のビットにXゲートを作用させるを確認するには以下のようにする。
from qiskit import QuantumCircuit, Aer, execute qc = QuantumCircuit(2) qc.x(0) job = execute(qc, Aer.get_backend('statevector_simulator')) print(job.result().get_statevector()) # Statevector([0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j], dims=(2, 2))
または、以下のようにバックエンドのrun
メソッドを利用することもできる。
どちらも結果は同じ。
from qiskit import QuantumCircuit, Aer qc = QuantumCircuit(2) qc.x(0) job = Aer.get_backend('statevector_simulator').run(qc) print(job.result().get_statevector()) # Statevector([0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j], dims=(2, 2))
なお、回路の行列表現を確認するunitary_simulator
については以下の記事を参照。
また、回路の初期化方法については以下の記事を参照。