0

我正在尝试将符号与由 定义的矩阵相乘QuTip quantum object,但出现此错误:

TypeError: Incompatible object for multiplication

我用了:

from qutip import *
import sympy as sp
w0 = sp.Symbol('\omega_{0}')
w0*destroy(4)

我错过了什么?

4

1 回答 1

0

该对象destroy(4)包含的信息不仅仅是歼灭算子的矩阵表示,因此它表示为Qobjqutip 中的类型。该类型Qobj目前不支持与 type 相乘sympy.Symbol。请注意,您可以查看右侧的__rmul__方法Qobj以查找支持乘以的类型。Qobj

如果您对使用这些运算符的矩阵表示感到满意,您可以执行以下操作以将符号与对应的矩阵相乘destroy(4)。以下将起作用:

w0 * destroy(4).data.todense()

这将是一个包含符号的 numpy 矩阵,您可以将其与计算中其他运算符对应的矩阵相乘(效率大大降低!)。

否则这可能值得在他们的 github 上发布一个问题。__rmul__根据如何分派到numbers.Number 这里,可能会实现一个实现。

于 2021-12-29T15:42:08.100 回答