所以我想利用 [b,bd]=1 的事实,其中 [] 是换向器,使用 sympy 来获得一些更复杂表达式的换向器,而不是手动完成,但是相反,我得到了包含换向器,但它没有被替换为 1,这是代码
from sympy import *
from sympy.physics.secondquant import *
comm1=simplify(Commutator(B(0),Bd(0)).doit())
comm1
这种情况下的输出是 1 ,它对应于 [b,bd]=1 的情况,但是如果我输入一个更复杂的表达式,例如
w1,w2,g=symbols('w1 w1 g')
H=w1*B(0)*Bd(0)+w2*B(1)*Bd(1)+g*Bd(0)*B(1)+conjugate(g)*Bd(1)*B(0)
comm2=simplify(Commutator(H,B(0)))
print(simplify(comm2))
我明白了
-g*(AnnihilateBoson(0)*CreateBoson(0)*AnnihilateBoson(1) - CreateBoson(0)*AnnihilateBoson(1)*AnnihilateBoson(0)) - w1*(AnnihilateBoson(0)*AnnihilateBoson(1)*CreateBoson(1) - AnnihilateBoson(1)*CreateBoson(1)*AnnihilateBoson(0)) + w1*(AnnihilateBoson(0)*CreateBoson(0)*AnnihilateBoson(0) - AnnihilateBoson(0)**2*CreateBoson(0)) - conjugate(g)*(AnnihilateBoson(0)*CreateBoson(1)*AnnihilateBoson(0) - CreateBoson(1)*AnnihilateBoson(0)**2)
如果 [b,bd]=1 被替换,这显然会简化很多,有人知道怎么做吗?或者任何人都可以向我指出另一个能够做到这一点的工具吗?