scipy block_diag不保留复数

时间:2015-06-16 15:17:12

标签: python arrays list scipy block

我编写了一个函数,使用block_diag函数将Pauli矩阵的张量积放在对角线上。

当我实现这个功能时,我获得了:

array([[ 1,  0,  0,  0,  0,  0,  0,  0],
   [ 0,  1,  0,  0,  0,  0,  0,  0],
   [ 0,  0,  0,  1,  0,  0,  0,  0],
   [ 0,  0,  1,  0,  0,  0,  0,  0],
   [ 0,  0,  0,  0,  0,  0,  0,  0],
   [ 0,  0,  0,  0,  0,  0,  0,  0],
   [ 0,  0,  0,  0,  0,  0,  1,  0],
   [ 0,  0,  0,  0,  0,  0,  0, -1]])

如你所见,矩阵

array([[ 0 , -1j],[1j,0]])
缺少

,被2x2 0矩阵替换。

它给我的警告是:

/usr/lib/python2.7/dist-packages/scipy/linalg/special_matrices.py:541: ComplexWarning: Casting complex values to real discards the imaginary part
out[r:r + rr, c:c + cc] = arrs[i]

关于如何克服这一点的任何想法?

0 个答案:

没有答案