モンテカルロ法
定義
簡単に言うと、モンテカルロ法Monte-Carlo methodは、ランダムにたくさん試すことだ。
説明
シンプルな方法だが、たくさん試すことほど簡単で確実な方法はあまりない。もちろん、簡単とはコンピュータを使う場合の話だ。モンテカルロは、モナコ北部のカジノやホテルで有名な地域の名前だ。「モンテカルロ法」という名前もモンテカルロのカジノから取ったものだ。モンテカルロ法の有名な例の一つは、ランダム抽出で円周率を求めることだ。
円周率の求め方
$1$の半径を持つ円と、その外接する一辺の長さが$2$の正方形を考えよう。正方形の面積は$2 \times 2 = 4$、円の面積は$\pi \cdot 1^{2} = \pi$であるから、
$$ \frac{\pi}{4} = \dfrac{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9206.png}}{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9073.png}} = \frac{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9157.png}}{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457481.1163.png}} \implies \pi = 4 \frac{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9157.png}}{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457481.1163.png}} $$
従って、$[0, 1] \times [0, 1]$の空間で一様分布からのランダム抽出を実施し、得られた全てのサンプルの中で単位円内にある点の比率に$4$を乗じると、$\pi$の近似値を求めることができる。当然、サンプルをたくさん引くほど、実際の$\pi$値に近くなるだろう。Juliaで実装し、実際に計算してみれば、
using Distributions
function MC(n)
x = rand(Uniform(0,1),n)
y = rand(Uniform(0,1),n)
z = x.^2 + y.^2
return 4*sum(z.<=1)/n
end
julia> MC(100)
3.32
julia> MC(1000)
3.184
julia> MC(10000)
3.1504
julia> MC(100000)
3.1394