-2

私は、統合、いくつかの操作、そしてさらに統合を行ういくつかのコードに取り組んできました。これがコードです(@JRichardSnapeに感謝します!)。基本的に、このコードは行列方程式を解きmesolveます。ハミルトニアン (重要な物理行列)、初期密度行列 、rho0および rho(t) を評価する時間の tlist (解いているもの) と崩壊演算子 を受け取りL1, L2, L3, L4, L5, L6, L7ます。次に、結果を抽出し、他の 2 つの配列を掛けてプロットします。

必要なソルバーがあるので、qutip 量子力学モジュールを使用しますmesolve。qutip モジュールでは、すべての行列を量子オブジェクトに変換する必要があります。これは、Qobj(x) によって行われます。

縮小演算子の定義の直後に、rho0=L1 を定義する行を追加しました。これが発生すると、インデックス エラーが発生します。

IndexError: index 0 is out of bounds for axis 0 with size 0

私は何が間違っているのかを見つけようとしました。f_t の定義中にエラーが発生します。問題は、配列にインデックスを付けようとするときです (n.data は、complex128 番号の単一要素配列です)。何が起こっている?

4

1 に答える 1

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.htmlQobjに記載されています

およびhttp://qutip.org/docs/2.2.0/apidoc/functions.html#qutip.mesolve.mesolvemesolve

rho0あると予想されますrho0 : qutip.qobj

の基礎となる配列ground(7,1)形状であり、L1(問題rho0は?) は(7,7)[0,0] を除いてすべて 0 です。

これは統合のスピンオフのように見えますが、Python QuTiP では成功しませんでした

于 2015-08-22T00:59:59.337 に答える