Qiskitでブロッホ球をプロットする(plot_bloch_vector、plot_bloch_multivector)

ブロッホ球は量子ビットの状態を視覚的に表現するツール。

https://qiskit.org/textbook/ch-states/representing-qubit-states.html#3.-The-Bloch-Sphere-

Qiskitでブロッホ球をプロットするにはVisualizationモジュールに含まれるplot_bloch_vectorまたはplot_bloch_multivectorを使用する。

plot_bloch_vector

単一量子ビットをプロットする場合はplot_bloch_vectorを使用する。

qiskit.visualization.plot_bloch_vector — Qiskit 0.43.1 documentation

デカルト座標で指定する場合は、plot_bloch_vector([double, double, double])の形式で引数にxyzの各座標を渡す。

また、任意で図のタイトルを指定することもできる。

from qiskit.visualization import plot_bloch_vector

plot_bloch_vector([0,1,0], title="New Bloch Sphere")

さらに、もともとは不可能だったが、極座標で指定することもできるようになった。

極座標で指定するには、plot_bloch_vector([double, double, double], coord_type='spherical')として r \theta \phiを指定する。

from qiskit.visualization import plot_bloch_vector
import numpy as np

plot_bloch_vector([1, np.pi/2, np.pi/3], coord_type='spherical')

plot_bloch_multivector

複数量子ビットの状態をそれぞれブロッホ球にプロットするには、plot_bloch_multivectorを使用する。

qiskit.visualization.plot_bloch_multivector — Qiskit 0.43.1 documentation

例えば状態 をプロットするには以下のようにする。

from qiskit.visualization import plot_bloch_multivector
import numpy as np

plot_bloch_multivector([1.0/np.sqrt(2.0), 0.0, 1.0/np.sqrt(2.0), 0.0])