2016-10-02 15 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)