【发布时间】:2019-12-31 03:44:44
【问题描述】:
在 sympy 中,我定义了两个 kets 和一个相应的胸罩,当我将胸罩应用于 kets 时......
from sympy import sqrt
from sympy.physics.quantum import Bra,Ket,qapply
superpos = (Ket('Dead')+Ket('Alive'))/sqrt(2)
d = qapply(Bra('Dead')*superpos)
...我得到这个结果:
sqrt(2)*<Dead|Alive>/2 + sqrt(2)*<Dead|Dead>/2
如何将 'Dead' 和 'Alive' 设置为正交状态,以便 d.doit() 提供 sqrt(2)/2?
到目前为止,我只能手动替换刹车:
d.subs(Bra('Dead')*Ket('Dead'),1).subs(Bra('Dead')*Ket('Alive'),0)
但是如何让刹车自动评估呢?为什么InnerProduct 对相同的刹车片结果为 1,而对不同标签的刹车片结果为 0?
【问题讨论】:
标签: python state sympy orthogonal