Я хочу исправить этот код. Все хорошо, но когда я пытаюсь запустить этот код, он показывает какую-то ошибку, так как TypeError: объект Result не поддерживает индексирование, я не знаю, почему эта проблема возникает. Если кто-то может решить, это очень приветствуется. Ответ будет оценен.
import math
import pylab as pl
from qutip import *
%matplotlib inline
# system parameters
n = 3
m = 128
gamma = 1
kappa = 0.5
Y = 0.01
g = 1/np.sqrt(2.0)
omega_M = 1
kappa_M = 0.1
ntraj = 1
# initial state
psi0 = tensor(fock(2,1), fock(n,0), fock(m,0))
# operators
sig_plus = tensor(sigmap(), qeye(n), qeye(m))
a = tensor(qeye(2), destroy(n), qeye(m))
b = tensor(qeye(2), qeye(n), destroy(m))
# collapse operators
c_ops= [np.sqrt(2*kappa)*a, np.sqrt(gamma)*sig_plus.dag(), np.sqrt(kappa_M)*b]
# expectation values
e_ops = [a.dag()*a.dag()*a*a, a.dag()*a*sig_plus*sig_plus.dag(), a.dag()*a,
sig_plus*sig_plus.dag()]
# lists of steady-state values
fieldfield_list = []
atomfield_list = []
tlist = np.linspace(0,20,2000)
gM_list = np.linspace(0,3,200)
# build the correlation plots
for g_M in gM_list:
H = omega_M*b.dag()*b + Y*(a + a.dag())+ g*((a*sig_plus) + (a.dag()*sig_plus.dag()))
+ g_M*a.dag()*a*(b + b.dag())
evalues = mcsolve(H, psi0, tlist, c_ops=[], e_ops=[], ntraj=None, args={}, options=None, progress_bar=True, map_func=None, map_kwargs=None, _safe_mode=True)
fieldfield_list.append(evalues[0][-1]/(evalues[2][-1]**2))
atomfield_list.append(evalues[1][-1]/(evalues[2][-1]*evalues[3][-1]))
# plot the correlation functions
pl.plot(gM_list, fieldfield_list, 'r', gM_list, atomfield_list, 'b')
pl.xlabel('g_M')
pl.ylabel('intensity correlation values')
pl.legend(('field-field', 'atom-field'))
pl.show()
После запуска кода выше я получаю эту ошибку.
TypeError Traceback (most recent call last)
<ipython-input-20-15b5e0ad0f36> in <module>()
33 evalues =mcsolve(H, psi0, times_list, c_ops=[], e_ops=[], ntraj=None,
args={}, options=None, progress_bar=True, map_func=None, map_kwargs=None, _safe_mode=True)
34
---> 35 fieldfield_list.append(evalues[0][-1]/(evalues[2][-1]**2))
36 atomfield_list.append(evalues[1][-1]/(evalues[2][-1]*evalues[3][-1]))
37 # plot the correlation functions
TypeError: 'Result' object does not support indexing