メルセンヌツイスタの高速版(SFMT)がExcel VBAで簡単に使える!
いつの間にか、メルセンヌツイスタの高速版(SIMD-oriented Fast Mersenne Twister (SFMT))が開発されていた!2倍速いとのこと。
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html
しかも、倍精度浮動小数点に特化したDouble precision SIMD-oriented Fast Mersenne Twister (dSFMT)も!私がしたいシミュレーション、乱数は正規乱数が多いのでこれはいい。
このdSFMTを和田さんがdll化、VBAその他で使えるようにしてくれています。すばらしい!
ありがとうございます。
http://www001.upp.so-net.ne.jp/isaku/
ここからたどっていって
http://www001.upp.so-net.ne.jp/isaku/rand2.html
のlibZD.zipです。
では使わせてもらいます。
zipを解凍して、libZD.dllをパスが通った場所に置く。例えばc:\windows。
で、まずは正規乱数を30000個生成してみる。こんな感じで。
Option Explicit
Private Sub 実行_Click()
Dim s As Long
Dim i As Integer
s = 1
Call InitMt(s)
Application.ScreenUpdating = False
For i = 1 To 30000
Worksheets("Sheet1").Cells(i + 2, 3) = NextNormal
Next i
Application.ScreenUpdating = True
End Sub
簡単。で、これをExcelのデータ分析ツールでヒストグラムにすると、、、
きれいな釣鐘型。ガウス乱数がものすごい速さで生成された。これは十分実用的ではないだろうか。これを使っていろいろやってみよう。
« 猫on車 | トップページ | Numerical Recipes in CのCholesky分解ルーチンをExcel VBAに移植 »
「学問・資格」カテゴリの記事
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2021年2月16日 IEEE Microwave Magazineの特集はオールデジタルのRFID、Microwave JournalはEバンド ミリ波通信に衛星や気球を使う話、アメリカの半導体企業がバイデンに投資を迫る、(2021.02.17)
- カオスを生じる電気回路、Chua’s circuitをLTspiceで回路シミュレーションしてみる。(2021.02.19)
- Labyrinth Chaos(迷宮カオス)を生むThomas-Rössler方程式のパラメータbを色々変えて、Python+Scipyでルンゲクッタ8次のDOP853(Dormand&Prince)を使って計算してGIFアニメ(2021.02.16)
- フィッツヒュー・南雲 (FitzHugh-Nagumo) 方程式をPython+Scipyでルンゲクッタ8次のDOP853(Dormand Prince)で計算。(2021.02.23)
- 「水晶振動子の等価回路計算」をカシオの高精度計算サイトkeisan.casio.jpの自作式としてUP! インピーダンスの大きさと位相がグラフ化できる。(2021.02.12)
« 猫on車 | トップページ | Numerical Recipes in CのCholesky分解ルーチンをExcel VBAに移植 »
コメント