我正在做一个分子动力学模拟。我需要为原子分配初始速度。我想分配遵循 Maxwell-Boltzmann 分布的初始速度。如何使用范围为 [0,1) 的均匀随机数生成器计算此类初始速度?
如何使用均匀分布随机数生成器生成 Maxwell-Boltzmann 变量?
计算科学
计算物理学
分子动力学
随机数生成
可能性
2021-12-14 20:49:32
1个回答
初始速度来自具有方差的高斯分布
在哪里表示玻尔兹曼常数,是温度和是质量粒子。
因此,问题归结为使用均匀分布的随机数从高斯分布生成随机数。幸运的是,这很简单:维基百科文章 https://en.wikipedia.org/wiki/Box–Muller_transform 展示了一些非常常见的算法,如何将均匀随机数转换为高斯随机数。
让我们把所有东西放在一起:速度的每个组成部分粒子是通过计算
在哪里是高斯随机数,方差为 1,均值为 0。
有了这个定义,每个速度分量都服从高斯分布
但是当你在球坐标中写出速度矢量的分布并对角分量进行积分时,你会得到
这是所需的麦克斯韦-玻尔兹曼分布。