Open4

ブロッホ球

derwindderwind

グローバル位相を除いた状態ベクトルを \ket{\psi} = \cos \frac{\theta}{2} \ket{0} + e^{i \phi} \sin \frac{\theta}{2} \ket{1} とする。この時、対応するブロッホベクトル \vec{r} \in S^2 (\subset \R^3) \simeq \mathbb{C}P^1 \ni \ket{\psi}

\begin{align*} \vec{r} = \begin{bmatrix} \sin \theta \cos \phi \\ \sin \theta \sin \phi \\ \cos \theta \\ \end{bmatrix} \end{align*}

で表される。
それぞれの成分は x = \operatorname{tr}(X \ket{\psi} \bra{\psi}), y = \operatorname{tr}(Y \ket{\psi} \bra{\psi}), z = \operatorname{tr}(Z \ket{\psi} \bra{\psi}) で求まる。

derwindderwind

状態ベクトルとブロッホベクトルの間の変換:

import numpy as np

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

def density_matrix(state):
    if len(state.shape) == 1:
        state = state.reshape(-1, 1)
    return state * np.conjugate(state.T)

def state2bloch(state):
    rho = density_matrix(state)
    x, y, z = np.trace(X @ rho), np.trace(Y @ rho), np.trace(Z @ rho)
    return np.real(np.array([x, y, z]))

def bloch2state(vec, epsilon = 1e-10):
    x, y, z = np.real(vec)
    cos = np.sqrt((1 + z)/2)
    if z > 1 - epsilon: # theta = 0
        return np.array([1, 0])
    elif z < -1 + epsilon: # theta = pi
        return np.array([0, 1])
    else:
        sin = np.sqrt(x**2 + y**2) / (2*cos)
        if x < 0:
            sin = -sin
        if abs(x) < epsilon: # phi = pi/2, 3pi/2
            if y >= 0:
                phi = np.pi/2
            else:
                phi = 3 * np.pi/2
        else:
            phi = np.arctan(y/x)
        return np.array([cos, np.exp(1.j*phi)*sin])
derwindderwind
\begin{align*} R_X(\lambda) = \begin{bmatrix} \cos \frac{\lambda}{2} & -i \sin \frac{\lambda}{2} \\ -i \sin \frac{\lambda}{2} & \cos \frac{\lambda}{2} \end{bmatrix},\ R_Y(\lambda) = \begin{bmatrix} \cos \frac{\lambda}{2} & - \sin \frac{\lambda}{2} \\ \sin \frac{\lambda}{2} & \cos \frac{\lambda}{2} \end{bmatrix},\ R_Z(\lambda) = \begin{bmatrix} e^{-i \frac{\lambda}{2}} & 0 \\ 0 & e^{i \frac{\lambda}{2}} \end{bmatrix} \end{align*}

\ket{\psi} = \cos \frac{\theta}{2} \ket{0} + e^{i \phi} \sin \frac{\theta}{2} \ket{1} に作用させて、Bloch ベクトルとしてどのような影響を受けるかを確認する。

R_X(\lambda)

\begin{align*} \ket{\psi^\prime} = R_X(\lambda) \ket{\psi} = \begin{bmatrix} \cos \frac{\lambda}{2} \cos \frac{\theta}{2} -i e^{i \phi} \sin \frac{\lambda}{2} \sin \frac{\theta}{2} \\ -i \sin \frac{\lambda}{2} \cos \frac{\theta}{2} + e^{i \phi} \cos \frac{\lambda}{2} \sin \frac{\theta}{2} \end{bmatrix} = \begin{bmatrix} a \\ b \end{bmatrix} \end{align*}

とする。

x 成分の計算

x^\prime = \operatorname{tr}(X \ket{\psi^\prime} \bra{\psi^\prime}) = \operatorname{tr}(X \begin{bmatrix} a a^* & a b^* \\ b a^* & b b^* \end{bmatrix}) = b a^* + a b^* = 2 \operatorname{Re}(a b^*) を計算する。

\begin{align*} x^\prime &= 2 \operatorname{Re} \left( (\cos \frac{\lambda}{2} \cos \frac{\theta}{2} -i e^{i \phi} \sin \frac{\lambda}{2} \sin \frac{\theta}{2}) (-i \sin \frac{\lambda}{2} \cos \frac{\theta}{2} + e^{i \phi} \cos \frac{\lambda}{2} \sin \frac{\theta}{2})^* \right) \\ &= 2 \operatorname{Re} \left( (\cos \frac{\lambda}{2} \cos \frac{\theta}{2} -i e^{i \phi} \sin \frac{\lambda}{2} \sin \frac{\theta}{2}) (i \sin \frac{\lambda}{2} \cos \frac{\theta}{2} + e^{- i \phi} \cos \frac{\lambda}{2} \sin \frac{\theta}{2}) \right) \\ &= 2 (\cos \frac{\lambda}{2} \cos \frac{\theta}{2} \cos \phi \cos \frac{\lambda}{2} \sin \frac{\theta}{2} + \cos \phi \sin \frac{\lambda}{2} \sin \frac{\theta}{2} \sin \frac{\lambda}{2} \cos \frac{\theta}{2}) \\ &= 2 \cos \phi \sin \frac{\theta}{2} \cos \frac{\lambda}{2} = \sin \theta \cos \phi \end{align*}

となる。よって、X 軸方向の成分は変化しない。

y 成分と z 成分の計算

y^\prime = \operatorname{tr}(Y \ket{\psi^\prime} \bra{\psi^\prime}) = \operatorname{tr}(Y \begin{bmatrix} a a^* & a b^* \\ b a^* & b b^* \end{bmatrix}) = i (a b^* - (a b^*)^*) = - 2 \operatorname{Im}(a b^*) を計算する。

\begin{align*} y^\prime =&\ -2 \operatorname{Im} \left( (\cos \frac{\lambda}{2} \cos \frac{\theta}{2} -i e^{i \phi} \sin \frac{\lambda}{2} \sin \frac{\theta}{2}) (i \sin \frac{\lambda}{2} \cos \frac{\theta}{2} + e^{- i \phi} \cos \frac{\lambda}{2} \sin \frac{\theta}{2}) \right) \\ =&\ -2 (\cos \frac{\lambda}{2} \cos \frac{\theta}{2} \sin \frac{\lambda}{2} \cos \frac{\theta}{2} - \cos \frac{\lambda}{2} \cos \frac{\theta}{2} \sin \phi \cos \frac{\lambda}{2} \sin \frac{\theta}{2} \\ &\ + \sin \phi \sin \frac{\lambda}{2} \sin \frac{\theta}{2} \sin \frac{\lambda}{2} \cos \frac{\theta}{2} - \sin \frac{\lambda}{2} \sin \frac{\theta}{2} \cos \frac{\lambda}{2} \sin \frac{\theta}{2}) \\ =&\ -2(\sin \frac{\lambda}{2} \cos \frac{\lambda}{2} \cos \theta - \sin \phi \cos \lambda \sin \frac{\theta}{2} \cos \frac{\theta}{2}) \\ =&\ \cos \lambda \sin \theta \sin \phi - \sin \lambda \cos \theta \end{align*}

z^\prime = \operatorname{tr}(Z \ket{\psi^\prime} \bra{\psi^\prime}) = \operatorname{tr}(Z \begin{bmatrix} a a^* & a b^* \\ b a^* & b b^* \end{bmatrix}) = a a^* - b b^* を計算する。

\begin{align*} z^\prime =&\ (\cos \frac{\lambda}{2} \cos \frac{\theta}{2} -i e^{i \phi} \sin \frac{\lambda}{2} \sin \frac{\theta}{2}) (\cos \frac{\lambda}{2} \cos \frac{\theta}{2} +i e^{-i \phi} \sin \frac{\lambda}{2} \sin \frac{\theta}{2}) \\ &\ - (-i \sin \frac{\lambda}{2} \cos \frac{\theta}{2} + e^{i \phi} \cos \frac{\lambda}{2} \sin \frac{\theta}{2}) (i \sin \frac{\lambda}{2} \cos \frac{\theta}{2} + e^{- i \phi} \cos \frac{\lambda}{2} \sin \frac{\theta}{2}) \\ =&\ \cos^2 \frac{\lambda}{2} \cos^2 \frac{\theta}{2} + 2 \sin \phi \cos \frac{\lambda}{2} \cos \frac{\theta}{2} \sin \frac{\lambda}{2} \sin \frac{\theta}{2} + \sin^2 \frac{\lambda}{2} \sin^2 \frac{\theta}{2} \\ &\ - ( \sin^2 \frac{\lambda}{2} \cos^2 \frac{\theta}{2} - 2 \sin \phi \sin \frac{\lambda}{2} \cos \frac{\theta}{2} \cos \frac{\lambda}{2} \sin \frac{\theta}{2} + \cos^2 \frac{\lambda}{2} \sin^2 \frac{\theta}{2}) \\ =&\ \cos^2 \frac{\lambda}{2} \cos \theta + \sin \phi (2 \sin \frac{\lambda}{2} \cos \frac{\lambda}{2}) (2 \sin \frac{\theta}{2} \cos \frac{\theta}{2}) - \sin^2 \frac{\lambda}{2} \cos \theta \\ =&\ \sin \lambda \sin \theta \sin \phi + \cos \lambda \cos \theta \end{align*}

よって、

\begin{align*} \begin{bmatrix} y^\prime \\ z^\prime \end{bmatrix} = \begin{bmatrix} \cos \lambda & - \sin \lambda \\ \sin \lambda & \cos \lambda \end{bmatrix} \begin{bmatrix} \sin \theta \sin \phi \\ \cos \theta \end{bmatrix} \end{align*}

となっている。つまり YZ 平面内で角度 \lambda の回転が適用された形である。

derwindderwind

Bloch 球 \mathbb{C} P^1 の座標を [z_1: z_2] とすると、パッチ U_1 = \{ z_1 \neq 0 \} \subset \mathbb{C}z = z_2/z_1U_2 = \{ z_2 \neq 0 \} \subset \mathbb{C}w = z_1/z_2 で覆うことができる。

パッチ U_1 に注目した場合に、z_1 = \cos \frac{\theta}{2}, z_1 = \sin \frac{\theta}{2} e^{i \phi} とすると、z = \left( \tan \frac{\theta}{2} \right) e^{i \phi} となる。U_1 内の単位円は Bloch 球の “赤道” にうつる。
Bloch ベクトルに対応する状態ベクトルに回転ゲートを適用すると、Bloch 球上の XY, YZ, ZX 平面での回転が発生するが、これは、パッチ U_1 の上では双曲幾何的な軌跡になるのではないだろうか・・・?(未確認; たぶんならない)