我正在用球体上的粒子进行 Metropolis Monte Carlo 模拟,并且对给定时间步长内的随机运动有疑问。
我知道要在球体上获得均匀分布的随机点,首先使用天真的最简单的方法是不够的(使用具有恒定 R 的球面坐标并选择随机角度 theta 和 phi),但必须例如使用这些方法之一:http: //mathworld.wolfram.com/SpherePointPicking.html
查看球体上蒙特卡洛的另一个代码,我看到了一种相当复杂的生成随机移动的方法:选择一个随机粒子,计算将其移动到北极的旋转矩阵,找到一个小于一定长度的随机笛卡尔向量并移动将其指向北极,对笛卡尔向量进行归一化,然后将其旋转回原始粒子位置附近。
这一切都是为了得到一个无偏的新随机位置。尽管我怀疑它与详细的平衡有关,但我并不完全理解其中的原理。但我的感觉是应该有一种更简单(即更快)的方法来做到这一点。实际上,直觉上我觉得在这种情况下可以找到两个小的随机角度 theta 和 phi 并将它们添加到粒子的位置 - 或者这会是一个错误吗?