基于Box–Muller变换的正态随机数生成方法

        Box-Muller,一般是要得到服从正态分布的随机数,基本思想是先得到服从均匀分布随机数再将服从均匀分布的随机数转变为服从正态分布

        定理(Box-Muller变换):如果随机变量U1和U2是IID的,且U1,U2 ~Uniform[0, 1],则

              

        Z0和Z1独立且服从标准正态分布。

        如何来证明这个定理呢?这需要用到一些微积分中的知识,首先回忆一下二重积分化为极坐标下累次积分的方法:

                

        假设现在有两个独立的标准正态分布 X~N(0,1) Y~N(0,1),由于二者相互独立,则联合概率密度函数

                  

        做极坐标变换,则 x=Rcosθy=Rsinθ,则有

                  

        则

               

        由此可得分布函数

                  

                 

        你可以看到这个结果可以看成是两个概率分布的密度函数的乘积服从上的均匀分布。令,将其转换为标准均匀分布则有。 

        另外一个的密度函数

                      

        则其累计分布函数CDF

                    

        这个CDF函数的反函数可以写成

                     

        根据逆变换采样的原理,如果我们有个PDF为P(R)的分布,那么对齐CDF的反函数进行均匀采样所得的样本分布将符合P(R)的分布。即,当z服从上均匀分布时,的分布函数为。因此可以选取两个服从上均匀分布的随机变量U1,U2,使得

                  
        而如果 u 均匀分布的,那么 U1 = 1-u 也将是均匀分布的,于是用 U1 替换1-u,最后可得

                  

                  

        结论得证。最后我们来总结一下利用Box-Muller变换生成符合高斯分布的随机数的方法:

                

 

 

https://blog.csdn.net/baimafujinji/article/details/51407703

https://www.cnblogs.com/wlzy/p/7784746.html

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值