2017-09-01 12 views
1

私はモンテカルロ(MC)コードをPythonでFortran拡張(f2pyでコンパイル)で書いています。確率積分であるので、アルゴリズムは乱数に大きく依存しています。つまり、通常の実行には乱数を使用します(~ 10^8 - 10^9)。これまでのところ、乱数の「品質」は気にしませんでしたが、これは私がチェックアウトしたいものです。numpy.randomとMonte Carlo

私の質問は:メルセヌン・ツイスターはnumpyで十分ですか、そこではより良い乱数発生器がありますか? (実行時の感覚と生成されたシーケンスの品質に優れています)

ご意見/ご感想は大歓迎です。

+1

私は[PyMC](https://pymc-devs.github.io/pymc/README.html)や[emcee](http://dan.iel)のようなMCの既存の実装をチェックすることをお勧めします.fm/emcee/current /)を使用して、どのRNG実装を使用しているかを確認してください。もしnumpyのMTが十分なのであれば、それがあなたのアプリケーションにとって十分であると想定するのは妥当でしょうか? – kazemakase

+1

MTはMCにとって十分であるべきです、これはwikiページに従っています –

答えて

2

乱数がどのように使用されているかわからず、このアルゴリズムで十分であると誰もがあなたに伝えることはできません。

私は、numpy乱数を何か別のものに置き換えることをお勧めします。確かに、異なるアルゴリズムを提供する他のモジュールがすでに利用可能です。 シミュレーション結果が乱数生成器の選択によって影響を受けない場合、それはすでに良い符号です。

関連する問題