使用 Metropolis-Hasting 算法收集统计数据
计算科学
蒙特卡洛
2021-12-01 04:15:45
1个回答
您的帖子实际上包含两个问题:
1)你应该计算什么
第一个问题将通过定义您正在学习的内容来回答。如果它是您系统的磁性(伊辛模型通常感兴趣),您可以通过计算每个组件的能量总和来计算您的状态能量:
其中的磁矩,是电场。然而,这仅代表整个系统的瞬时能量,由于他的自然波动,您无法在真实的物理系统中直接观察到。与您的说法相反,在微观水平上的平衡中,平衡时每种配置的能量并不总是相同的。该算法具有接受更高能量配置的非零概率,我建议您测试更高温度的系统因此我们观察一系列记录的平均值(形成您的数据):
其中是您将保留的记录数。此外,您可以计算对任何物理计算有用的标准偏差和其他统计属性(查看任何好的统计和计算物理教科书,如马尚肯或 Werner Krauth 的教科书)。
2)我必须使用什么数据来计算它?
第二个问题更具挑战性,因为您必须定义您的系统是否已达到平衡。对于简单的 Ising 模型,这并不是真正的问题,因为您只需观察最后记录中的能量波动。如果它们足够小,这是一个胜利,但如果您正在为具有更高自由度的系统使用非微规范或非规范集成,那么定义您的模型是否最终收敛可能会变得非常乏味。通常,如果您的数据没有收敛到可接受的平均结果,您应该从最终得到的配置开始继续您的模拟。否则,您可以(或多或少)任意定义统计分析的起点,具体取决于数据的收敛性。您还必须在值的不同记录之间花费一些时间,以使它们在统计上独立。例如,只记录千分之一的配置。
其它你可能感兴趣的问题
