2014-09-11 41 views
2

我想獲取量子對象的所有元素rho1(基本上是一個矩陣/數組),並計算元素的指數以獲得矩陣/數組rho2 。我該怎麼做呢?我得到一個錯誤AttributeError: exp)。 qutip函數不執行我特定的計算,它返回一個具有不同尺寸的數組。如何在Python的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 

回答

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 
0

要在qobj上執行元素exp,您可以對基礎稀疏數據進行操作。

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

+0

OK ......你能成爲一個更具體一點?如果我去'x = np.exp(1j * np.pi * Jx.data.data)* rho1',我得到一個內存錯誤。基本上我的目標是通過讓一個運算符'exp(i pi jx)'作用於''rho1'來編寫'rho2'。 – 2014-09-14 20:19:51

相關問題