首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QuTip:如何将符号与矩阵相乘

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

Stack Overflow用户
提问于 2021-12-26 22:53:46
回答 1查看 154关注 0票数 0

我试图用一个由QuTip quantum object定义的矩阵来乘一个符号,但是我得到了以下错误:

代码语言:javascript
运行
复制
TypeError: Incompatible object for multiplication

我用:

代码语言:javascript
运行
复制
from qutip import *
import sympy as sp
w0 = sp.Symbol('\omega_{0}')
w0*destroy(4)

我错过了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-29 15:42:08

对象destroy(4)包含的信息比湮没算子的矩阵表示要多得多,因此它在qutip中被表示为Qobj类型。类型Qobj目前不支持sympy.Symbol类型的乘法。请注意,您可以在__rmul__方法Qobj下面查找支持哪些类型与右边的Qobj相乘。

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

代码语言:javascript
运行
复制
w0 * destroy(4).data.todense()

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70490407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档