一様分布(無作為)で正方形にダーツをN万回投げて円周率を求める
1.想定される利用目的
・分布に応じたシミュレーションデータの生成
2.サンプルストリームのダウンロード
3.サンプルストリームの説明
a.入力するデータは以下の通りです。ダーツを1辺が2の正方形へ無作為に投げた時の座標を示しています。
[シミュレーション生成]ノードは以下のようにX座標とY座標をそれぞれmin=-1、max=1の一様分布で設定しています。
発生させるレコードは1万件にしています。
b.[フィールド作成]ノードを編集します。原点から無作為にプロットされた点との距離を3平方の定理で求め、1未満なら円に入ったとしてフラグを立てます。
c.[散布図]ノードを編集します。
[実行]します。半径1の円に入れば赤に、外側だと青にマークされます。偏りなく無作為に
d.[レコード集計]ノードを編集します。
e.[フィールド作成]ノードを編集します。円に入る確率は無限に投げた時の赤マーク比率と等しくなるため、円の面積(11π)/正方形の面積(2*2)と 赤の数/投げた総数が等しい前提で円周率を求めます。
[テーブル]を実行します。1万回程度では小数点桁2桁目で誤っていることがわかります。
注意点
この記事は一様分布を生成することを主たるテーマとして扱っており、実際に円周率を求めるにはスーパーコンピュータを用いて膨大な数のシミュレーションを実施する必要があります。
4. 参考情報
シミュレーションデータを生成する
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)