モンテカルロ法                       戻る

 近年コンピュータの発達により、コンピュータを用いて数学の問題を解くという時代になった。
四色問題がコンピュータの活躍により解決されたことは、四半世紀経った今でも鮮烈な記憶と
して残っている。このページでアプローチするモンテカルロ法は、解析的には解けない問題に
対して、ランダムな実験を多数回繰り返し、その結果をもとに近似的に答を求めようとする方
法である。

 定積分の計算で、被積分関数の不定積分が容易に分からないとき、近似計算により、定積
分の値を求めることになるが、次の2つの公式が知られている。

台形公式 

  関数F(X)は、区間[a,b] で連続とする。この区間を n 等分して、

 分点を小さい方から順に、a=X,X,X,・・・,X−1,X=b

 とし、Y=F(X)、h=(b−a)/n とする。このとき、

 

 この公式は、曲線の一部をその両端を結ぶ線分によって

置き換え、曲線の下の面積をいくつかの台形の面積の和で

近似するものである。

シンプソン(Simpson)の公式

   
関数F(X)は、区間[a,b] で連続とする。この区間を 2n 等分して、分点を小さい方から

順に、a=X,X,X,・・・,X−1,X=b とし、Y=F(X)、h=(b−a)/2n とする。

このとき、

   

 この公式は、X軸上の等間隔hの3点X2K−2、X2K−1、X2K をとり、これに対応する曲線上

の3点を通る放物線を考え、曲線の下の面積をいくつかの放物線の面積の和で近似するも

のである。

   の値を、台形公式、シンプソンの公式を用いて求めてみよう。

 区間[0,1] を10等分すると、h=0.1

このとき、Y=1、Y=0.9900990、Y=0.9615385

           Y=0.9174312、Y=0.8620690

           Y=0.8000000、Y=0.7352941

           Y=0.6711409、Y=0.6097561

           Y=0.5524862              、Y10=0.5 

従って、台形公式を用いれば、  A≒0.7849815

     シンプソンの公式を用いれば、  A≒0.7853982

因みに、正しく定積分の計算をすれば、A=π/4≒0.7853982 である。

 この定積分近似計算の第3の方法として、モンテカルロ・シミュレーションという方法がある。

  上記例の関数を用いて説明することにする。

  左図は、区間[0,1] における関数F(X)のグラフを表す。定積

  分の値Aを求めることは、左図の網目状の部分の面積を求め

  ることである。今一組の乱数(α,β)を発生させ、F(α)≧β

  となるかどうかを判定する。何組かの乱数をとり、その総数を

  Nとする。このうち、上記不等式を満たすものの個数を r とす

  れば、全体の面積が1なので、比の値 r/N は定積分の近似

  値を与える。Nの値を十分大きくとれば、よりよい近似値となる

  はずである。
 

  乱数を発生させるには、乱数表を用いたり、乱数さいころを用いればよい。乱数さいころは、

正20面体で、各面に0〜9の数字が2つずつ書かれ、均等に数字が出るように作られている

ものである。

 ここでは、表計算ソフトExcel のRAND関数を用いて乱数を発生させ、実験してみよう。

セルA1に =RAND()、セルB1に =1/(1+A1*A1)、セルC1に =RAND() を入力し、

不等式を満たすかどうかの判定として、セルD1に =IF(+B1−C1>=0,1,0) を入力す

る。セルA1、B1、C1、D1を1〜10000行までコピーする。

不等式を満たすものの個数計算用として、セルE1に =SUM(D1:D10000) を入力する。

 10回試行を行ったところ、次の結果を得た。

7790、7943、7840、7828、7925、7871、7844、7855、7787、7839

この標本平均は、7852.2 となる。

 従って、7852.2/10000=0.78522 が求める定積分の近似値となる。

 上記のシミュレーションでは、10000行までに留めたが、これをもうすこし大きくとれば、実際

値に、より近づくものと期待される。

(参考文献:木下栄蔵 著 好奇心の数学(電気書院)
       大槻富之助 著 数Vの研究(旺文社))