2016-10-02 4 views
-1

큐 비트의 2x2 밀도 행렬이 주어지면 큐 비트를 나타내는 Bloch sphere에서 어떻게 계산해야합니까?큐 비트 밀도 행렬을 블로흐 벡터로 변환

예를 들어, 상태 |0⟩-|1⟩[[0.5,-0.5],[-0.5,0.5]]의 밀도 행렬을 가지며 X 축을 따라 끝나야합니다. 그러나 밀도 행렬 [[0.5, 0], [0, 0.5]]은 어떤 방향으로도 편향되어 있지 않으며 원점에서 끝나야합니다.

답변

1

변환은 몇 임의의 선택에 따라 달라집니다

  • 당신이 원하는 마십시오 | 0⟩ 상단 또는 하단에?
  • 좌표계를 오른손 잡이 또는 왼손잡이로 하시겠습니까?

당신이와 "오른 손잡이" "하단에"와 그 답을 가정하면,이 방법은 그것을 할 것입니다 :

def toBloch(matrix): 
    [[a, b], [c, d]] = matrix 
    x = complex(c + b).real 
    y = complex(c - b).imag 
    z = complex(d - a).real 
    return x, y, z 

당신은 다른 선택으로 전환 따기와 부정 출력을 선택하여 .

것은 그것을 테스트 :

print(toBloch([[1, 0], 
       [0, 0]])) #Off, Z=-1 
# (0.0, 0.0, -1.0) 

print(toBloch([[0, 0], 
       [0, 1]])) #On, Z=+1 
# (0.0, 0.0, 1.0) 

print(toBloch([[0.5, 0.5], 
       [0.5, 0.5]])) #On+Off, X=-1 
# (-1.0, 0.0, 0.0) 

print(toBloch([[0.5, 0.5j], 
       [-0.5j, 0.5]])) #On+iOff, Y=-1 
# (0.0, -1.0, 0.0) 

print(toBloch([[0.5, 0.0], 
       [0.0, 0.5]])) #maximally mixed state, X=Y=Z=0 
# (0.0, 0.0, 0.0) 
관련 문제