【问题标题】:numpy.random and Monte Carlonumpy.random 和蒙特卡洛
【发布时间】:2018-02-10 07:28:36
【问题描述】:

我用 Python 编写了一个带有 Fortran 扩展(使用 f2py 编译)的 Monte Carlo (MC) 代码。由于它是随机积分,该算法严重依赖随机数,即我使用~ 10^8 - 10^9 随机数进行典型运行。到目前为止,我并不真正介意随机数的“质量”——然而,这是我想检查的东西。

我的问题是:numpy 使用的 Mersenne-Twister 是否足够,或者是否有更好的随机数生成器应该(可以)使用? (在运行时以及生成序列的质量方面更好)

绝对欢迎任何建议/经验,谢谢!

【问题讨论】:

  • 我建议您查看现有的 MC 实现,例如 PyMCemcee,看看他们使用什么 RNG 实现。如果 numpy 的 MT 对他们来说足够好,那么假设它对你的应用程序来说足够好似乎是合理的,对吧?
  • MT 对 MC 来说应该足够了,这是根据它的 wiki 页面

标签: python numpy random montecarlo mersenne-twister


【解决方案1】:

如果不知道随机数是如何使用的,我认为没有人能告诉你这个算法是否足够。

我会做的是用其他东西替换 numpy 随机数,当然还有其他模块已经提供了不同的算法。 如果您的模拟结果不受随机数生成器选择的影响,那已经是一个好兆头了。

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2018-10-20
    • 1970-01-01
    相关资源
    最近更新 更多