简而言之,我有一个表达式,其中包含 , 和 , 之间的乘法p1
,我p2
想使用, where将表达式变为对称形式。q1
q2
[qi,pi]=ii*hb
i={1,2}
(pi^a*qi^b+qi^b*pi^a)/2
例如,因为p2*q2*p2^2
我开始(p2*q2^3+q2^3*p2)/2 + 1/2*ii*p2^2*hb
使用简化和一些替换。但是我无法简化,q2*q1^2*p2
尽管我已经指定了一个规则q2*p2-> (p2*q2+q2*p2)/2 +ii/2*hb
并且带有 1s 和 2s 的变量可以通勤。
更详细地说,这里是 Mathematica 代码(我使用量子包)。
该代码在索引为 1 或 2 时有效,但在同时使用两个索引时无效:
p2*q2*q1*q2
给出p2*q1*q2^2
,p2*q2*q2
可以进一步简化,但既然有q1
,Mathematica 就不会这样做。
更详细地说:我正在尝试编写一个 Mathematica 代码,该代码可以在本文的附录(eq. A2)中获取方程式 ,这就是我正在使用的代码。后一个文件中的代码与上面的代码略有不同,因为我无法让上面的代码也运行,但它会是理想的。
最后,我想将最终代码用于其他类型的哈密顿量,最高可达 4 次方甚至更高。
我想要一个建议,我可以学习如何编写一个可以为我进行有针对性的简化的包。