メルセンヌツイスタの高速版(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に移植 »
「学問・資格」カテゴリの記事
- TensorFlow(Keras)でモデルをsaveで保存してload_modelで読み込むときに突然エラー(utf8で読めないとかディレクトリが存在しないとか)が出始めた。なんで?といろいろやると、単に日本語がフォルダ名に使われているときにエラーになるだけだった…(Windowsネイティブの場合)(2023.05.28)
- 時代に逆行してCOBOL(GnuCOBOL)を学んでみる(4) 10進31桁まで計算できることを生かして4段4次のルンゲクッタ法でローレンツ方程式を計算して図示してみる。テキストベース(アスキーアート)で!(2023.05.23)
- 時代に逆行してCOBOL(GnuCOBOL)を学んでみる(3) ロジスティック写像の分岐図を31桁まで10進計算ができることを生かして描いてみる。テキストベースで!今回は2次元配列の練習。(2023.05.19)
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース(5/18) IEEE Microwave Magazineはグラフェンのマイクロ波応用、Microwave Journalはテラヘルツ波の発生、Next G allianceの新6Gレポート、Hexa-Xの新動画、ESAが軌道上に6Gラボ、De-embeddingって何?など。(2023.05.18)
- カシオの高精度計算サイトkeisan.casio.jpが復旧してログインや自作式の作成ができるようになった。ということで作った自作式のアクセスベスト10とお勧めを紹介。(2023.05.17)
« 猫on車 | トップページ | Numerical Recipes in CのCholesky分解ルーチンをExcel VBAに移植 »
コメント