Identity 运算符不能正确作用于伴随运算符

The Identity operator does not act correctly on adjoint operators

我定义了一个抽象算子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