ダイバーシティ推進室ダイバーシティ推進室

 > 組織 > ダイバーシティ推進室 > 科振費「女性研究者グローバルエンカレッジング」 >理科・算数っておもしろい  >モンテカルロ法のお話

モンテカルロ法のお話



松田
こんにちは。ここではモンテカルロ法のお話をします。
???
モンテカルロはカジノで有名でモナコ公国にあります。 でも、ここでお話しするモンテカルロ法は乱数を用いたシミュレーションのことです。
『らんすう』ってなんですか?
たとえばサイコロを振ってどの目がでるかは、それぞれ6分の1の確率ですね。600回サイコロを振ったとしたら、 1の目がおよそ100回、2の目がおよそ100回、・・・とそれぞれの目がおよそ100回くらい出ることが期待されますが、 出てくる順番はでたらめですね。そのでたらめな数字、でも、どの数字が出てくるかは確率的にわかっている、 といったものを乱数といいます。
その乱数を使ってシミュレーションをするのですか?
ここでのお話は、シミュレーションというのは少し大げさかもしれません・・・。 みなさんは円周率πっていうのをご存知ですよね。ここでは乱数を使って円周率を計算する方法をご紹介したいと思います。
たとえば右のような図形があったとします。正方形の中に円が入っていますね。

図1 正方形の中に円が入っています
はい。
ここで、正方形の中のでたらめな場所に点をうつとします。その点が円の中に入っているか、いないか、を分けるとします。 この図1の正方形の面積As は、
   ・・・   (1)
ですね。そして円の面積Ac は、
   ・・・   (2)
です。そうすると、正方形の中にでたらめに点をたくさんうつと円の中に入った個数Nin と入らななかった個数Nout の比率は面積の比率になるので、
   ・・・   (3)
となります。
そうですね。
それで、式(3)に、式(1)と式(2)を代入して、変形しますと、
   ・・・   (4)
になります。
・・・紙に書いてやっと分かりました・・・。
・・・そこで、でたらめに点をうつという作業をコンピュータにしてもらいます。たとえば、100点くらい点をうつとこんな感じです。 この場合の、Nin Nout は、
Nin =  82    ・・・   (5)
Nout =  18    ・・・   (6)
だったので、式(4)に代入して、
 π = 3.28    ・・・   (7)
となりました。

図2 試行1(点の数100)
学校で習った値と異なるんですけど・・・。
もともとこの方法はあまり精度の高い計算法ではないのですが、それでも点の数を増やしていくことで 精度をあげることができます。今度は1000点うってみますと右のようになりました。 この場合の、Nin Nout は、
Nin = 785    ・・・   (8)
Nout = 215    ・・・   (9)
だったので、式(4)から、
 π = 3.14    ・・・   (10)
となりました。

図3 試行2(点の数1000)
へぇ〜
点の数はもっと増やせますし、何度もコンピュータに計算させることもできます。 ここではモンテカルロ法を使ってπの値を計算する方法の一例を示しました。 コンピュータの普及で、このような計算が簡単にできるようになりました。
なんとなく分かりました。
ほかに乱数の応用でどういうことができますか?
モンテカルロ法は、コンピュータによるシミュレーションの勉強をはじめると 最初のころに学ぶもので、確率をもとに複雑な現象を解明したりできます。
今日はどうもありがとうございました。

松田聡  博士(工学)
(独)産業技術総合研究所
男女共同参画室

専門・・・
化学工学・流動層工学・ほか

略歴・・・
大学卒業後、産総研の前身の研究所に就職、 現在(2009年3月)に至る。



>