QuTiP:解决不一致的 Qobj 形状

QuTiP: Resolving inconsistent Qobj shapes

之前在 QuTiP TypeError: Incompatible Qobj shapes with tensor product 中对此进行了探讨,但我不确定那里的答案。

假设我定义了A = tensor(qeye(2), qeye(2))B = qeye(4),我无法将它们相乘,因为对象形状不一致。

但是,矩阵具有相同的维度,我想 "flatten" A 允许它乘以 B。如果我有可分离运算符和不可分离运算符的组合,我该如何将它们一起使用?换句话说,B 不能进一步简化,所以我应该对 A 做些什么才能使它们相乘?

编辑:看起来笨重的 Qobj(A.data.toarray()) 可以工作,但我会保持开放状态,以防有人有更好的想法或理解 QuTiP 为什么这样做。

是的,使用 Qobj.data 可以得到表示状态或运算符的矩阵。

因此 A.data * B.data 允许您将它们相乘。完成后,您可以将其封装在 Qobj(A.data * B.data) 中,使其成为一个量子对象。