我想获取量子对象rho1
的所有元素(基本上是矩阵/数组)并计算元素的指数以获得矩阵/数组rho2
。我该怎么做?
exp
显然numpy
无法正常工作(我收到错误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
答案 0 :(得分:1)
这有效:
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
答案 1 :(得分:0)
要在qobj上执行elementwise exp,您可以对基础稀疏数据进行操作。
rho2 = rho1 rho2.data.data = np.exp(rho1.data.data)