完成Box-Muller Transformation的证明 在这之前,我们首先引出Inverse transform sampling定理(中文可能是反变换定理,反变换法吧。) 定义:假设u=F(x)是一个连续累计分布函数(也就是一个密度函数的积分), F-1为其反函数。 定理:如果U是一个均匀分布(0,1)的随机变量的话,则F-1(U)服从函数F给出的分布。 证明: 这样就导出一个方法: 输入:一组[0,1]之间的满足均匀分布的随机数U 任务:给定一个分布的密度函数f(x),要生成满足这一分布的一组随机数。 输出:一组满足f(x)的随机数V 方法:1)求f(x)的分布函数F(x) 2)求F(x)的反函数F'(x) 3)对于U中的每一个元素u,将F'(u)加入序列V中。
据此,我们发现 只要求出正态分布的密度函数的分布函数的反函数,然后直接代入服从均匀分布的随机数, 所得的结果即为服从正态分布的随机数了! 接下来如何导出正态分布pdf(probabilistic distribution function概率密度函数)的分布函数的反函数呢?(太拗口了。。。) 我们都非常熟悉了正态分布的pdf,但是其分布函数(也就是从0-x的积分)据我所知很难搞定。 < 如果是无穷积分的话还有可能搞出来(用个平方和的技巧) > 其实,我们这里使用和这个平方和技巧相同的方法。进行变形,就可以神奇的得到BoxMuller了~
过程如下: 使用两个正态分布的概率密度函数 以及 用上述的化为极坐标的技巧, 将x=rcos(theta), y=rsin(theta) 这样可以得到极坐标上的两个正交的服从正态分布的变量 概率为 具体步骤不再详述,利用了Jacobian行列式,然后就直接得到这个结果啦。
接下来根据上述的方法1)2)3) 步骤1) 首先对其分别积分,得到分布函数 以及 步骤2) 求上述函数的反函数 据此,我们其实已经证明了Marsaglia polar method方法。所以这个才叫做polar法~ 步骤3) 代入服从均匀分布的随机数,得到 因为服从均匀分布(0,1),所以可以将 终于,我们对Box-Muller Transformation证明完毕。 |
|
来自: kingwenguang > 《正态分布》