简而言之,我有一个表达式,其中包含 , 和 , 之间的乘法p1,我p2想使用, where将表达式变为对称形式。q1q2[qi,pi]=ii*hbi={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 次方甚至更高。
我想要一个建议,我可以学习如何编写一个可以为我进行有针对性的简化的包。