手を上げるキュビットくんゆるふわ量子コンピュータ
重ね合わせで回るキュビットくん

ブロッホ球で1量子ビットを"見る"|期待値からベクトルを計算する

2026-08-29実践

#Qiskit#ブロッホ球#状態可視化#Python#実践

1量子ビットの状態は、半径1の球(ブロッホ球)の上の1点として表せます。北極が|0⟩、南極が|1⟩、赤道が重ね合わせ。この記事では、状態ベクトルからブロッホ座標(x, y, z)を自分で計算し、ゲートで点がどう動くかを数値で追います。量子ビットの基礎を座標で理解し直す回です。

ブロッホ座標の正体

ブロッホ球の(x, y, z)は、それぞれ X・Y・Z方向の期待値 そのものです。

x = ⟨X⟩,  y = ⟨Y⟩,  z = ⟨Z⟩

z = +1 なら|0⟩(北極)、z = −1なら|1⟩(南極)、x = 1なら|+⟩(赤道)です。

準備

pip install qiskit numpy

① 状態からブロッホ座標を計算

Qiskitで状態ベクトルを作り、パウリ行列の期待値を計算します。

import numpy as np
from qiskit.quantum_info import Statevector

X = np.array([[0, 1], [1, 0]], dtype=complex)
Y = np.array([[0, -1j], [1j, 0]], dtype=complex)
Z = np.array([[1, 0], [0, -1]], dtype=complex)

def bloch(qc_or_state):
    psi = Statevector(qc_or_state).data
    exp = lambda M: np.real(np.conj(psi) @ M @ psi)
    return np.round([exp(X), exp(Y), exp(Z)], 3)

from qiskit import QuantumCircuit

qc = QuantumCircuit(1)                 # |0⟩
print("|0⟩       :", bloch(qc))        # [0 0 1] 北極

② ゲートで点を動かす

各ゲートがブロッホ球上の点をどう回転させるか見ます。

qc = QuantumCircuit(1); qc.h(0)
print("H|0⟩ = |+⟩ :", bloch(qc))       # [1 0 0] 赤道(+x)

qc = QuantumCircuit(1); qc.h(0); qc.s(0)
print("S H|0⟩=|i⟩ :", bloch(qc))       # [0 1 0] 赤道(+y)

qc = QuantumCircuit(1); qc.x(0)
print("X|0⟩ = |1⟩ :", bloch(qc))       # [0 0 -1] 南極

qc = QuantumCircuit(1); qc.ry(np.pi/4, 0)
print("Ry(π/4)   :", bloch(qc))        # 北極から45°傾く

出力:

|0⟩       : [0. 0. 1.]
H|0⟩ = |+⟩ : [1. 0. 0.]
S H|0⟩=|i⟩ : [0. 1. 0.]
X|0⟩ = |1⟩ : [0. 0. -1.]
Ry(π/4)   : [0.707 0.    0.707]

アダマールは北極→赤道(+x)、Sは赤道上で90°回転、Xは北極→南極——ゲートの働きが座標の動きとして丸見えになりました。

🌱

Qiskitの描画関数

数値でなく絵で見たいなら、Qiskitの plot_bloch_multivector(Statevector(qc)) で球に矢印を描けます(matplotlibが必要)。仕組みを理解するには、この記事のように自分で期待値を計算するのが近道です。

⚠️

純粋状態は球面上・混合状態は内部

ノイズのない純粋状態は必ず球の"表面"(長さ1)に乗ります。ノイズが混じって情報が失われると、点は球の内側に入ります(長さ 1 未満)。ブロッホ球は状態の"純度"も可視化してくれます。

まとめ

  • ブロッホ座標(x,y,z)=X・Y・Zの期待値
  • z=+1が|0⟩、z=−1が|1⟩、赤道が重ね合わせ
  • ゲートは球上の点の回転として理解できる
  • 純粋状態は球面、ノイズが混じると内部に入る

もう少し詳しく(背景と理論)

ブロッホ球は1量子ビットの状態と SU(2)/SO(3) の対応を可視化する道具です1。純粋状態は単位球面上の点で、ブロッホベクトル r=(⟨X⟩,⟨Y⟩,⟨Z⟩) は |r|=1。ノイズで情報が失われた混合状態は密度行列 ρ=(I+r·σ)/2 として球の内部(|r| は 1 未満)に対応し、中心 r=0 は完全混合状態です2。ゲートは球面上の回転(例: Rᵧ(θ) は y 軸まわり θ 回転)に対応し、量子の1ビット演算がすべて3次元回転として理解できます3。ただしこの美しい描像は1量子ビット限定で、2量子ビット以上の状態空間は球に描けません4

次の一歩 🌸

量子ビットの基礎は量子ビット超入門、ゲートの働きは量子ゲート入門、自作シミュレータはNumPyで作る量子シミュレータへどうぞ。

Footnotes

  1. 1量子ビットの純粋状態 |ψ⟩=cos(θ/2)|0⟩+eⁱᵠ·sin(θ/2)|1⟩ は、極角 θ・方位角 φ の球面座標に対応する。名称は物理学者フェリックス・ブロッホに由来。

  2. 混合状態は密度行列 ρ で表され、ブロッホ球の内部点に写る。純度 Tr(ρ²) は (1+|r|²)/2 で、|r| が球の半径=純度の指標になる。

  3. 1量子ビットのユニタリ(大域位相を除く)は SO(3) の回転と1対1対応。任意の1量子ビットゲートは高々3つの回転(オイラー角分解)で表せる。

  4. n 量子ビットの状態空間は複素射影空間で、ブロッホ球のような単純な可視化は n=1 に限られる。多ビットのもつれは球では表現できない。

🔥 この分野の最新トレンドをチェック →

あわせて読みたい