Ising模型的Metropolis模拟中的组态阻塞和振荡
Ising模型哈密顿量为
\[\hat{H} = - J \sum_{i,j相邻} s_i s_j - B \sum_i s_i
\]
若取 \(J=1, B=0\),做 4 x 4 一共 16 个 spin 的 Ising 模型模拟,可以得到很平缓的相变曲线,如下图
曲线最左侧有些点低于低于1.0,增大 Markov 链的根数,增大链的长度,都没有改善这一点。所以仔细输出中间结果仔细观察了一下,发现温度特别低的时候存在一些有趣的(不好的)情况。
1. 组态阻塞
做统计模拟的人大概喜欢叫做微观状态,我习惯了组态这个词,就这么用了。如果 Markov 链产生如下组态
----
++++
++++
----
那么,翻转任何一个spin,都会导致体系能量上升。所以这实际上是一个模型的亚稳态,在温度较低的时候,e.g. kT=0.1,接受概率是 \(e^{-2/0.1} = 2e-9\),所以翻不过去,形成阻塞。这样的组态比基态能量高很多,按照Metropolis模拟的思想,这样的组态出现概率理应极低。但是,因为低温下的阻塞,这样的组态以过大的比例出现在最终统计中,Metropolis模拟的精神得不到体现。
2. 组态振荡
最低能组态 E = -32,下面这些 E = -8 的组态在低能下会不断循环。
组态1:
-++-
++++
++-+
----
组态2:
++-+
++-+
+---
++-+
组态3:
++++
+-++
---+
+-++
组态4:
+-++
----
+-++
++++
组态5:
-++-
--++
-+++
-++-
组态6:
----
-++-
+++-
++--
3. 总结
总而言之,4 x 4 的格子做低温 kT/J = 0.1, ..., 0.5 的时候,会有阻塞和循环现象,导致结果中有些非物理的内容。
自然有如下问题:
- 更大的格子上有没有类似的现象?我猜是有。
- 一个重要的问题是,不同能量的组态数时怎么样的?或者说,态密度是怎么样的?这个问题的答案对于 Ising Model 的结果无疑是很重要的。