我定义了一个抽象运算符 A 和恒等运算符 I。不出所料,A*I = I*A =*A
.但是,如果我考虑 A 的伴随,则标识运算符似乎没有正常运行,即Dagger(A)*I
没有简化为Dagger(A)
(请参阅下面的代码(。 如何定义作用于同时作用于运算符及其伴随的标识运算符?
from sympy.physics.quantum.dagger import Dagger
from sympy.physics.quantum.operator import Operator
from sympy.physics.quantum import IdentityOperator
A = Operators('A')
Identity = IdentityOperator()
A * Identity #This gives A, correctly
B = Dagger(A)
B * Identity #This returns A^dagger I . so it does not remove the identity operator
您可以使用qapply
来规范化结果:
In [9]: from sympy.physics.quantum import qapply
In [10]: B*Identity
Out[10]:
†
A ⋅I
In [11]: qapply(B*Identity)
Out[11]:
†
A