2010年5月16日日曜日

Scilab:乱数によるΠの計算

Scilabで乱数を使ってΠを求めてみました。

Scilabでは立ち上がったWindowサイズに応じてページサイズの出力が出る度にページコントロールで

[Continue display? n (no) to stop, any other key to continue]

のようなプロンプトを出して来ますが、面倒なのでこれを

lines(0)

切ります。プログラムは下記のようにしました。(プログラムはScilabのメニューのApplications→Editorでエディターを開いて打ち込み、EditorのメニューのExecute→Load Into Scilabで実行します。)

lines(0)
maxc=100000000
count = 0;
for i = 1:maxc
  x=rand(1);
  y=rand(1);
  if sqrt(x^2+y^2) <= 1.0 then
    count = count + 1;
  end
  if modulo(i,1000000) == 0 then
    i
    pai=4*count/i
  end
end
count
pai=4*count/maxc

この乱数の精度がよくわかりませんが、実行結果です。

回数Πの近似値
10,000,0003.1413716
20,000,0003.142014
30,000,0003.1417497
40,000,0003.1418244
50,000,0003.141764
60,000,0003.1417499
70,000,0003.1417391
80,000,0003.1416907
90,000,0003.1416595
100,000,0003.1416488

1億回計算させても小数点以下4桁目からずれています(^^; Core2Duo 1GHz メモリ2GBのノートPCで3時間くらいかかりました(^^;

0 件のコメント: