指定された分布に従う乱数

指定された分布に従
う乱数
1
モデリングとシミュレーション
2
一様乱数から指定された分布に
従う乱数へ
シミュレーションにおいて、乱数の分
布が指定される場合がある
指数分布に従う乱数
正規分布に従う乱数
変換法
棄却法
3
確率分布
実数に対する分布
実数は連続であることに注意
確率密度𝑓𝑓 𝑥𝑥 の解釈
区間[𝑥𝑥, 𝑥𝑥 + ∆𝑥𝑥)に入る確率
f ( x ) ∆x
規格化
∫
xmax
xmin
f ( x ) dx = 1
4
F ( x + ∆x )
F ( x)
F ( x)
x
x + ∆x
5
[0,1)の一様乱数𝑟𝑟を生成
𝑥𝑥 へ変換
x = F −1 ( r )
[𝑥𝑥, 𝑥𝑥 + ∆𝑥𝑥)に入る確率
  F −1 ( x ) , F −1 ( x + ∆x ) ) の長さ

F −1 ( x + ∆x ) − F −1=
( x ) f ( x ) ∆x + O ( ∆x 2 )
6
例:指数分布
e
, 0 ≤ x < 1, A
=
f ( x ) Ae
=
e −1
−x
F (=
x)
∫
x
0
f ( y )=
dy A (1 − e − x )
F −1 ( r ) =
− ln (1 − r / A )
f ( x)
F ( x)
7
変換法の困難さ
変換法が使えるためには
確率分布の表式を得られる
不定積分の表式が得られる
確率分布の逆関数の表式を得られる
これらは、かなり特殊な場合
8
正規分布:特殊な例
=
f ( x)
 x2 
exp  − 2  , − ∞ < x < ∞
2
2πσ
 2σ 
1
不定積分は誤差関数と呼ばれ、表式は
知られていない
標準的な確率分布
9
二次元正規分布を考える
 x2 + y 2 
exp  −
f ( x, y ) dxdy =
 dxdy
2
2
2πσ
2σ 

1
極座標へ変換  x = r cos θ

 y = r sin θ
 r2 
=
f ( r ) rdrdθ
r exp  − 2  drdθ
2
2πσ
 2σ 
1
10
𝜃𝜃方向には一様であること
 r2 
=
f ( r ) r dr
r exp  − 2  dr
2
σ
 2σ 
r 1
 r '2 
 r2 
f ( r ') r 'dr ' =
1 − exp  − 2 
∫0 σ 2 r 'exp  − 2σ 2  dr ' =
 2σ 
1
ρ=∫
r
0
r=
−2σ 2 ln (1 − ρ )
11
二つの乱数 𝑢𝑢, 𝑣𝑣 , 0 ≤ 𝑢𝑢, 𝑣𝑣, < 1
r=
−2σ 2 ln (1 − u ) , θ = 2π v
x = r cos θ
二つの乱数から一つしか作ることがで
きないことに注意
12
棄却法 (rejection method)
変換法で生成できない分布に対応
効率は悪いが、応用範囲が広い
13
1. 𝑓𝑓(𝑥𝑥)の変域を𝑥𝑥 ∈ [𝑎𝑎, 𝑏𝑏)とし、𝑓𝑓 𝑥𝑥 <
𝑚𝑚とする
2. 乱数生成 𝑥𝑥, 𝑦𝑦 ∈ [0,1)
3. 𝑧𝑧 = 𝑏𝑏 − 𝑎𝑎 𝑥𝑥 + 𝑎𝑎
4. 𝑦𝑦 < 𝑓𝑓(𝑧𝑧)/𝑚𝑚ならば𝑧𝑧を採用
5. それ以外ならば棄却
6. 次の乱数を生成