積分区間が1でないモンテカルロ積分の計算方法をわかりやすく解説

2023年10月17日

積分区間が1でない有限区間のモンテカルロ積分はどうやるのか?

モンテカルロ積分は、難しい積分の計算ができなくてもExcelで簡単に近似解を得られる便利な方法です。

>> 【Excelで機械学習】モンテカルロ積分①難しい積分が誰でも簡単にExcelで解ける

 

積分区間で一様乱数xを沢山作って、それぞれに対応するf(x)を求め、その平均を取れば積分の近似解になりました。

ここで一つ問題があります。

積分区間が0~1とか5~6など区間幅が1の場合にしか、この方法が使えないのです。

今回は、これを積分区間が有限であればいくつでも良いように拡張していきます。

 

積分区間が2だと積分値は2倍になる

まず、積分区間が2の場合、前回と同じ関数を同じ方法で計算するとどうなるかを見てみましょう。

f(x) = x2

を0から2まで積分します。

下のグラフのピンクの部分の面積を求めるということです。

 

Excelで前回と同じやり方でモンテカルロ積分をすると次のようになります。

クリックすると拡大します

 

1.34になりました。

正解は約2.67です。

約2倍違います。

どこで間違ってしまったのでしょうか?

 

モンテカルロ積分は長方形の平均面積を求めている

モンテカルロ積分では、まずxの積分区間から乱数を沢山作ります。

するとxに対応するf(x)も沢山できます。

そして、その平均を積分値としました。

 

これは見方を変えれば、高さf(x)、幅1の長方形の面積の平均を取っているとも考えられます。

例えば、乱数で0.6ができたとすると、次のように面積0.36の長方形ができます。

 

次に0.8の乱数ができたとすると、次のように面積0.64の長方形ができます。

 

このように乱数ができる度に作られる幅1の長方形の面積の平均値を取っていると考えることができます。

積分区間が1であれば、このように沢山できる幅1の長方形の面積の平均を取って、積分値の近似値としていたのです。

 

ところが積分区間が2の場合は、下のグラフのように幅2の長方形の面積の平均を取らないと積分値になりません。

 

なので、次のように積分区間である2をf(x)に掛けないといけないのです。

クリックすると拡大します

 

モンテカルロ積分はある確率分布を積分区間に掛けている

以上が感覚的な説明ですが、式でも示すことができます。

積分区間0から1での一様乱数xを作ってf(x)に代入するということは、次のようにxが0から1の間でだけ確率密度が1になる確率分布p(x)をf(x)に掛けることと同じです。

 

これを拡張すると、積分区間aからbでの一様乱数xを作ってf(x)に代入するということは、次のようにxがaからbの間でだけ確率密度が1/(b-a)になる確率分布p(x)をf(x)に掛けることと同じです。

 

このp(x)を積分したい関数f(x)に掛けてaからbまでの区間で積分するのですが、f(x)×p(x)はaからbの区間において次のように変形することができます。

f(x)

=f(x)/p(x)×p(x)

=f(x)/(1/(b-a))×p(x)

(b-a)×f(x)×p(x)

 

p(x)は区間aからbの一様分布ですから、この区間で一様乱数xを作って、それをf(x)に代入し(b-a)して平均を取れば積分値になるのです。

 

積分区間[a,b]でモンテカルロ積分する時は(b-a)倍する

きちんとした式で書くとこうなります。

一方で期待値の式は次の通りです。

期待値とは取り得る値の平均のことです。

例えばサイコロを振った時には、それぞれの目が1/6の確率で出ます。

ですので期待値は、

1×1/6+2×1/6+3×1/6+4×1/6+5×1/6+6×1/6=3.5

です。

つまり、それぞれの取り得る値に確率を掛けて足した値が期待値です。

この確率を一様分布と考えたものが、モンテカルロ積分ともいえます。

 

でも、確率として取れるのは一様分布だけではありません。

実はどんな分布でも良いのです。

拡張編をこちらで解説しています。

無限区間のモンテカルロ積分は被積分関数の選び方が重要である理由

 

Udemyの関連講座

データ分析シリーズ① AI数学-文系でも理解できる!高校から始めるデータ分析、AIのための数学-

データ分析、機械学習に関わる数学に絞り、効率的に学習できるようカリキュラムを構成しました。文系でも理解できるよう丁寧な説明をしています。Pythonエンジニア育成推進協会認定スクールによる高品質な数学コースです。

 

本当にわかる、AI時代の数学【超初心者からの数学入門】

数学アレルギーでも大丈夫/やさしく丁寧な解説/コード無し キーワード:基礎/数学/行列/線形代数/ベクトル/微分/データサイエンス/AI/機械学習/ディープラーニング/データドリブン/人工知能

 

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 初級編 –

1000人以上が受講している(株)キカガクの『脱ブラックボックスセミナー』が遂に登場!機械学習の参考書を「閉じてしまった人」への再入門に最適な講座です。微分・線形代数といった数学の基礎からPythonでの実装まで短時間で習得しましょう。