level 4
郭嘉丶郭奉孝
楼主
各位好,最近我需要计算一串fermion的收缩,手算着实麻烦且机械,故拜访贵吧想来请教如何用mathematica来实现自动化的计算。大佬们如果有空可以把它当作是一道趣味思考题,在下先谢过各位。
抛开具体的物理内容,Wick收缩对应的实际操作是:
任意给一串字符串 a1,a2,a3,a4,...an
对它的”Wick收缩“操作即是:
输出全部可能的,所有字符两两带权相并后的乘积。而权重的定义为:
“当ai和aj相并的时候,设ai和aj中间隔了k个字符,那么并起来之后需要乘上数“(-1)^k”,”
下面是一个简单的例子。
-------------------------------------------------------------------
考虑字符串 {a1,a2,a3,a4} 的wick收缩,
因为所有字符两两相并一共只有3种可能(分别是12并x34并,13并x24并,14并x23并)
但是如同定义所说的那样,这里的相并还需要带上权重。那么对于{a1,a2,a3,a4} 的wick收缩,实际结果就是:
“<a1a2>x<a3a4> - <a1a3>x<a2a4> + <a1a4>x<a2a3>”(这里"<>"用来标记相并)
这里<a1a3>*<a2a4>前面的负号就来自于a1和a3相并的时候跨越了1个a2,所以出来了一个-1。
PS:(a1a3并完之后剩下{a2,a4},则按照定义a2,a4相并就无负号了)
-------------------------------------------------------------------
我想向各位请教,请问我该如何使用MMA的代码来实现这样的操作呢?
2020年09月01日 09点09分
1
抛开具体的物理内容,Wick收缩对应的实际操作是:
任意给一串字符串 a1,a2,a3,a4,...an
对它的”Wick收缩“操作即是:
输出全部可能的,所有字符两两带权相并后的乘积。而权重的定义为:
“当ai和aj相并的时候,设ai和aj中间隔了k个字符,那么并起来之后需要乘上数“(-1)^k”,”
下面是一个简单的例子。
-------------------------------------------------------------------
考虑字符串 {a1,a2,a3,a4} 的wick收缩,
因为所有字符两两相并一共只有3种可能(分别是12并x34并,13并x24并,14并x23并)
但是如同定义所说的那样,这里的相并还需要带上权重。那么对于{a1,a2,a3,a4} 的wick收缩,实际结果就是:
“<a1a2>x<a3a4> - <a1a3>x<a2a4> + <a1a4>x<a2a3>”(这里"<>"用来标记相并)
这里<a1a3>*<a2a4>前面的负号就来自于a1和a3相并的时候跨越了1个a2,所以出来了一个-1。
PS:(a1a3并完之后剩下{a2,a4},则按照定义a2,a4相并就无负号了)
-------------------------------------------------------------------
我想向各位请教,请问我该如何使用MMA的代码来实现这样的操作呢?


