QuTip:如何将符号与矩阵相乘

QuTip: How to multiply symbol with matrix

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

TypeError: Incompatible object for multiplication

我用过:

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

我是不是漏掉了什么?

对象destroy(4)包含的信息远不止是湮灭算子的矩阵表示,所以它在qutip中表示为类型QobjQobj 类型目前不支持与 sympy.Symbol 类型相乘。注意,可以在Qobj__rmul__方法下查看哪些类型支持与右边的Qobj相乘

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

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

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

否则这可能值得在他们的 github 上发布问题。根据 __rmul__ 被分派到 numbers.Number here.

的方式,实现可能是可能的