モンテカルロ法を使って円周率を計算する

円周率を計算する方法にモンテカルロ法というものがある。

モンテカルロ法は次の手順で円周率を求める。

  • 円と、円が内接するような正方形を用意する
  • 正方形内にランダムな点を打つ
  • 全点と円内の点との数の比を求める

すなわち

\begin{align}
\frac{\mbox{円内の点}}{すべての点} \approx \frac{\pi r^2}{(2r)^2} = \frac{\pi}{4}
\end{align}

の近似計算をしていることになる。

matlabで計算してみた。うまくいってそう。

N=10000;
point=-1+2*rand(N,2);

pin=0;
for i=1:1:N
 if norm(point(i,:))<=1
     pin=pin+1;
 end
end

result=4*pin/N;

コメント

タイトルとURLをコピーしました