我正在针对各种外力对Langevin方程进行一些模拟。有人告诉我C的rand()
使用stdlib.h
可能会导致我的结果出现偏差,因此我使用的是梅森·扭曲器。
但是,我想确切地知道(并看到)线性同余生成器可以在模拟中引入什么样的误差。这些是我尝试过的事情:
- 生成随机数的3D元组以尝试查看超平面。我什么也看不到。
- 对大随机数向量进行FFT。对于Mersenne Twister和,这几乎是相同的
rand()
。 - 检查布朗运动中粒子的均分原理。两个积分器同意的预期值具有相同的有效位数。
- 看看他们在不属于幂二的数个箱中的储物效果如何。两者给出相同的定性结果,没有人比这更好。
- 综观布朗路径看不清楚分歧。再次,没有运气。
- 圆上的点分布。填充,仅在外围。它们之间以及最近的邻居之间(Shor的回答,在评论中下方)。在该要点中可用,安装所需的库后,只需在Julia 0.5.0中运行即可(请参阅要点以获取说明)。
我想强调的是,我正在物理模拟的背景下寻找引入的偏差。例如,我已经看到rand()
在不使用Mersenne Twister的情况下,顽固测试失败了,但是对于我来说,这并不意味着太多。
您是否有任何物理,具体的示例来说明不良的随机数发生器如何破坏蒙特卡洛模拟?
注意:我已经看到PRNG的效果如何RANDU
。我对一些不明显的示例感兴趣,这些示例看起来很无辜,但最终会产生偏见。