변환은 몇 임의의 선택에 따라 달라집니다
- 당신이 원하는 마십시오 | 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)