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中表示为类型Qobj
。 Qobj
类型目前不支持与 sympy.Symbol
类型相乘。注意,可以在Qobj
的__rmul__
方法下查看哪些类型支持与右边的Qobj
相乘
如果您喜欢使用这些运算符的矩阵表示,您可以执行以下操作,将一个符号与对应于 destroy(4)
的矩阵相乘。以下将起作用:
w0 * destroy(4).data.todense()
这将是一个包含符号的numpy矩阵,您可以在计算中将其与其他运算符对应的矩阵相乘(效率会大大降低!)。
否则这可能值得在他们的 github 上发布问题。根据 __rmul__
被分派到 numbers.Number
here.
的方式,实现可能是可能的
我试图将符号与由 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中表示为类型Qobj
。 Qobj
类型目前不支持与 sympy.Symbol
类型相乘。注意,可以在Qobj
的__rmul__
方法下查看哪些类型支持与右边的Qobj
相乘
如果您喜欢使用这些运算符的矩阵表示,您可以执行以下操作,将一个符号与对应于 destroy(4)
的矩阵相乘。以下将起作用:
w0 * destroy(4).data.todense()
这将是一个包含符号的numpy矩阵,您可以在计算中将其与其他运算符对应的矩阵相乘(效率会大大降低!)。
否则这可能值得在他们的 github 上发布问题。根据 __rmul__
被分派到 numbers.Number
here.