我一直在研究一些代码,它们进行集成,一些操作,然后进行更多集成。
这是code(感谢@JRichardSnape!)。
基本上这个代码解决了矩阵方程,这是mesolve
所做的。它接受哈密顿量(一个关键物理矩阵),一个初始密度矩阵rho0
,以及一个时间tlist来评估rho(t)at(我们要求解决的)和崩溃算子{{1 }}。然后我提取结果并乘以另外两个数组并绘制它。
我使用qutip量子力学模块,因为他们有我需要的求解器:L1, L2, L3, L4, L5, L6, L7
。 qutip模块要求将所有矩阵转换为量子对象,这由Qobj(x)完成。
我在崩溃运算符定义之后添加了一条定义rho0 = L1的行。发生这种情况时,它会给我一个索引错误:
mesolve
我试图找出问题所在。在f_t的定义过程中出错了。问题是当它试图索引数组时(n.data是complex128数字的单个元素数组)。发生了什么事?
答案 0 :(得分:3)
这会再现您的错误:
In [34]: data = np.zeros((0,10))
In [35]: data
Out[35]: array([], shape=(0, 10), dtype=float64)
In [36]: data[0]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-36-88cae4a5bf31> in <module>()
----> 1 data[0]
IndexError: index 0 is out of bounds for axis 0 with size 0
如果不钻研链接代码,很明显所讨论的数组的第一维长度为0。 x.shape[0]
为0。
你可能会得到这样一个数组,用空列表索引另一个数组,
In [44]: data=np.ones((3,4))
In [45]: data[[],...]
Out[45]: array([], shape=(0, 4), dtype=float64)
由于您提供的信息有限,因此很难更具体。检查所有可疑阵列的形状。
因此http://qutip.org/docs/2.2.0/apidoc/classes.html
中记录了Qobj
在http://qutip.org/docs/2.2.0/apidoc/functions.html#qutip.mesolve.mesolve 中和mesolve
和rho0
预计为rho0 : qutip.qobj
。
ground
的基础数组是(7,1)
形状,L1
(问题rho0
?)是(7,7)
,所有0&#39; s除了[0,0]。