首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sympy.physics.quantum换向器?

如何使用sympy.physics.quantum换向器?
EN

Stack Overflow用户
提问于 2016-03-18 22:58:23
回答 1查看 1.5K关注 0票数 3

我想找出一些换向器操作,并发现这个工具的渐近性。它看起来像预期的那样工作(但是文档实际上是不存在的,或者至少我没有发现什么,但是请看下面Dalton的评论),但是我遇到了下面的问题。

代码语言:javascript
复制
from sympy.physics.quantum import Commutator as Comm
from sympy.physics.quantum import Operator
A = Operator('A')
B = Operator('B')
C = Comm(Comm(Comm(A,B),A),B)
D = Comm(Comm(Comm(A,B),B),A)
E = (C-D).expand(commutator=true)
E
>>> [[[A,B],A],B] - [[[A,B],B],A]

而不是预期的更简单的结果0 (因为[[A,B,A],B] = [[A,B,B],A])。那么,在不计算换向器(即w/o调用doit()函数)的情况下,如何强制得到更简单的结果呢?请注意,

代码语言:javascript
复制
simplify(E.doit())
>>> 0

给出所需的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-23 14:09:35

目前,在SymPy中,换向器不知道这个标识,因此它必须展开换向器(在您已经识别的.doit方法中),以便能够简化表达式。

要做到这一点,需要的是向Commutator._eval_expand_commutator方法中添加特例,以便当换向器的参数包含换向器时,然后检查已知的标识。

我在这里打开了一个问题:https://github.com/sympy/sympy/issues/10892

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

https://stackoverflow.com/questions/36095622

复制
相关文章

相似问题

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