如何在Python中获取量子对象的指数';s QuTiP

如何在Python中获取量子对象的指数';s QuTiP,python,numpy,Python,Numpy,我想取一个量子对象的所有元素rho1(基本上是一个矩阵/数组),然后计算元素的指数,得到一个矩阵/数组rho2。我该怎么做 显然,来自numpy的exp不起作用(我得到一个错误AttributeError:exp)。qutip函数不执行我的特定计算,它返回具有不同维度的数组 import numpy as np import qutip as qt N = 2 M = 2 # angular momentum Jp = qt.tensor(qt.qeye(M), qt.jmat(N/2.0,

我想取一个量子对象的所有元素
rho1
(基本上是一个矩阵/数组),然后计算元素的指数,得到一个矩阵/数组
rho2
。我该怎么做

显然,来自
numpy
exp
不起作用(我得到一个错误
AttributeError:exp
)。
qutip
函数不执行我的特定计算,它返回具有不同维度的数组

import numpy as np
import qutip as qt

N = 2
M = 2

# angular momentum
Jp = qt.tensor(qt.qeye(M), qt.jmat(N/2.0, '+'))
Jm = qt.tensor(qt.qeye(M), qt.jmat(N/2.0, '-'))

# make initial state
rho1 = qt.tensor(qt.basis(M,0), qt.basis(N+1,N))
print rho1

# make another state
Jx = (Jp + Jm) / 2.0  # angular momentum
# x = np.exp(1j*np.pi*Jx) * rho1
x = (1j*np.pi*Jx).expm() * rho1
rho2 = qt.tensor(qt.basis(M,0), x)
print rho2

要在qobj上执行elementwise exp,可以对底层稀疏数据进行操作

rho2=rho1 rho2.data.data=np.exp(rho1.data.data)

这项工作:

import numpy as np
import qutip as qt

N = 2
M = 2

Jp = qt.tensor(qt.qeye(M), qt.jmat(J, '+'))   # J+
Jm = qt.tensor(qt.qeye(M), qt.jmat(J, '-'))   # J-

# angular momentum
Jx = (Jp + Jm) / 2.0

# initial state
rho0 = qt.tensor(qt.basis(M,0), qt.basis(N+1,N))

R = (1j*0.5*np.pi*Jx).expm()  # rotation transform
rho = R * rho0

好啊你能再具体一点吗?如果我去
x=np.exp(1j*np.pi*Jx.data.data)*rho1
我会得到一个内存错误。基本上,我的目标是编写
rho2
,方法是让操作符
exp(i pi Jx)
作用于ket
rho1