从量子比特密度矩阵转换为Bloch向量

时间:2016-10-02 20:46:56

标签: quantum-computing

考虑到量子比特的2x2密度矩阵,如何计算代表量子比特的Bloch sphere上的点?

例如,状态|0⟩-|1⟩的密度矩阵为[[0.5,-0.5],[-0.5,0.5]],并且应沿X轴结束。但密度矩阵[[0.5, 0], [0, 0.5]]在任何方向都没有偏差,最终应该在原点。

1 个答案:

答案 0 :(得分: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)