正規分布の近似(5)

 x = a(r - \frac{1}{2})^3 + b(r - \frac{1}{2})

という一様乱数からの変換を考える。

 x = g(s) = as^3 + bs
 s = r - \frac{1}{2}

としたほうが考えやすいだろう。


この逆関数を考えると、
これを求めるには三次方程式を解けばいいが、
解の公式で解いてもどの解を選べばいいか分からないだろうし、
解けても積分ができないだろう。
直接はこの逆関数を考えない。

 r = g^{-1}(x) = \int_{-\infty}^x{p(t)dt

だから、

 p(x) = \frac{d}{dx}g^{-1}(x) = \frac{1}{g'(g^{-1}(x))}

満たすべき式は、
まず分布の範囲が、
[-c, c] (c = g(1/2))
より、

 c = \frac{1}{8}a + \frac{1}{2}b

p(x)のピーク値をN回振って標準正規分布と同じになるとすると、

 p(0) = \frac{1}{g'(g^{-1}(0))} = \frac{1}{g'(0)} = \sqrt{\frac{N}{2\pi}}

より、

 b = \sqrt{\frac{2\pi}{N}}

あと、これは絶対満たさなければならない。

 \sigma^2 = \int_{-c}^c{x^2p(x)dx} = \frac{1}{N}

a -> a/sqrt(N), b -> b/sqrt(N), c -> c/sqrt(N)
と置き換えると、

 c = \frac{1}{8}a + \frac{1}{2}b
 b = \sqrt{2\pi}
 \sigma^2 = \int_{-c}^c{x^2p(x)dx} = 1

となる。
これを数値的に解けばよい。