対数正規分布の描画
Visual C++/CLRプログラム例
対数正規分布(Lognormal distribution)の描画プログラムを作成した。プログラムDrawLogNormal.exeは.NET Framework 3.5 対応であるが、このプログラムをクリックして実行すると、まず図1のフォームが表示される。
図1
パラメタとの値を「mu =」と「sigma =」の下のテキストボックス、描画範囲を「min_x =」と「max_x =」の下のテキストボックスに設定して、「Draw」ボタンをクリックすると図2のように描画される。
図2
図2の描画画面においてパラメタおよび描画範囲の再設定後、「Draw」ボタンをクリックすると、設定した値で再描画が行われる。
描画画面は、「Save」ボタンのクリックでファイルに保存することができる。
対数正規分布は次式で表される。
平均値、分散、モードは次式で与えられる。
関数の描画は、以下のコードで行っている。
array<Point>
^ pnt = gcnew array<Point>(1000);
for (int i = 0; i < 1000; i++)
pnt[i] = Point( xpos((i + 1) / 1000.0),
ypos(LogNormal(minX
+ (i + 1) * (maxX - minX) / 1000.0) / maxV) );
g->DrawLines( pn, pnt );
まず、CLI配列pntに関数のグラフを1000個の値で分割した点を設定して、DrawLines関数によって描画している。
プログラムのソースコードなどを圧縮ファイルとしてまとめた。この圧縮ファイルDrawLogNormal.zipは、ファイル名をマウスの右ボタンでクリックしてダウンロードすることができる。ダウンロードした圧縮ファイルは、名前をマウスの右ボタンでクリックすると表示されるメニュから「解凍」あるいは「展開」などを選んで解凍することができる。解凍したファイルはVisual C++2008で開くことができる。
Visual C++/CLRプログラミングの解説書として<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房>を用意した。
参考文献
Gelman, A., Carlin, J. B., Stern, H. S. and Rubin, D. B. (1995). Bayesian Data Analysis. Chapman & Hall.