数学的な問題の解は大きく「解析解」と「数値解」に分けられます。
例えば「サイコロを2個振って両方とも1が出る確率を求めよ」という問題を考えます。
解析解は理論的・代数的に算出できる解であり、確率の知識があれば「1が出る確率は1/6であり、2回とも1が出る確率は(1/6)^2 = 1/36」と厳密な解をえられます。
一方の数値解は数値計算によって解を得るアプローチです。
この問題であれば以下のRプログラムによる数値シミュレーション(乱数によるモンテカルロ法)を行うことで、厳密解1/36に近い値が得られます。
simulateTwoDice <- function(sampleNum){ count <- 0 # (1,1)(2個のサイコロが両方とも1)が出た回数を記憶 for (i in 1:sampleNum) { # サイコロを2個分の乱数を生成 dice <- sample(c(1,2,3,4,5,6), 2, replace=TRUE, prob=c(1/6,1/6,1/6,1/6,1/6,1/6)) # (1,1)だったらcountに1を足す if(dice[1] == 1 && dice[2] == 1){ count <- count + 1 } } cat(sprintf("試行回数 %d回、(1,1)の回数 %d回、(1,1)の確率 %f%%\n", sampleNum, count, count/sampleNum * 100)) } 1/36*100 # 厳密解を%表示 simulateTwoDice(10) simulateTwoDice(100) simulateTwoDice(1000) simulateTwoDice(10000) simulateTwoDice(100000) simulateTwoDice(1000000) simulateTwoDice(10000000)
実行結果は以下の通りです
> 1/36*100 # 厳密解を%表示 [1] 2.777778 > simulateTwoDice(10) 試行回数 10回、(1,1)の回数 0回、(1,1)の確率 0.000000% > simulateTwoDice(100) 試行回数 100回、(1,1)の回数 2回、(1,1)の確率 2.000000% > simulateTwoDice(1000) 試行回数 1000回、(1,1)の回数 17回、(1,1)の確率 1.700000% > simulateTwoDice(10000) 試行回数 10000回、(1,1)の回数 266回、(1,1)の確率 2.660000% > simulateTwoDice(100000) 試行回数 100000回、(1,1)の回数 2750回、(1,1)の確率 2.750000% > simulateTwoDice(1000000) 試行回数 1000000回、(1,1)の回数 27817回、(1,1)の確率 2.781700% > simulateTwoDice(10000000) 試行回数 10000000回、(1,1)の回数 278671回、(1,1)の確率 2.786710%
解析解は厳密な結果を与えるが、常に得られるとは限らない
解析解は厳密な結果を与えます。(先ほどの問題であれば1/36という真の解)
ただし解析解を得ることは難しい、あるいは不可能であるケースが多く、その場合は数値解に頼るほかありません。
以下に例を挙げます。
- 互いに相互作用する3点以上の物体の運動は(例外はあるが一般に)解析的に解くことができない
- 解析解は存在するが、導出が難しい場合がある
- 15打席連続出塁の確率の解析解を求めることは理論的には可能だと思われるが極めて煩雑な計算が必要となる
- リスクの影響を考慮して年利10%で30年間の投資をした場合の投資結果は証券投資理論の知識がなければ解析解を得ることは難しい
実際にこれら2つのケースではRによる数値解析(モンテカルロ法によるシミュレーション)によって数値解を求めました。
数値解は大抵の問題を解くことができるが、計算結果に誤差を含む
解析解が不明な場合も数値解を計算することは多くの場合可能です。
ただし、数値解には誤差が含まれていることは注意する必要があります。
サイコロ2個とも1である確率を数値的に求めた際は、乱数によってサイコロを2個振る試行を多数回行いました。
試行回数が少ない場合は解析解2.778%に十分に近い結果は得られず、解析解に近い結果を得るには1万回以上の試行が必要でした。
サイコロ2個を振るという極めてシンプルな問題であっても1万回を超える試行が必要となるように、十分な精度の数値解を得るためにはかなりの計算資源が必要となります。
さらに数値解がどれだけ解析解(厳密回)に収束しているのかを見積もるためには統計学の知識が必要となってきます。

- 作者: Paul Teetor,大橋真也,木下哲也
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/12/22
- メディア: 大型本
- 購入: 9人 クリック: 61回
- この商品を含むブログ (12件) を見る

- 作者: 大村平
- 出版社/メーカー: 講談社
- 発売日: 2005/08/10
- メディア: 単行本
- クリック: 2回
- この商品を含むブログ (7件) を見る