www.bifa365.com现在matlab里采用的是ziggurat algorithm来生成高斯分布

当前位置:必发365娱乐官方网站 > www.bifa365.com > www.bifa365.com现在matlab里采用的是ziggurat algorithm来生成高斯分布
作者: 必发365娱乐官方网站|来源: http://www.trans-bali.com|栏目:www.bifa365.com

文章关键词:必发365娱乐官方网站,采样分布

  在数值计算中,采样方法(sampling method)就是一种生成一系列符合某个特定概率分布(例如高斯分布)的随机数的算法。最简单的采样方法就是生成符合均匀分布的采样,这在随机数是怎么生成的里面已经提到过,通常其他的非均匀分布都是通过一个或几个均匀分布通过转换而得来。采样方法最早是在美国50年代的曼哈顿计划中的蒙特卡洛模拟方法 (Monte-Carlo simulations )中发明的,经过近年来的研究已经有很多高效的算法,比如马尔科夫链蒙特卡洛采样方法(Markov Chain Monto Carlo),www.bifa365.com吉布斯采样(Gibbs sampling),切片采样(Slice Sampling)等等,其中最基本的采样方法包括:

  的变量X,首先通过均匀分布得到一个[0,1]之间的变量U,然后通过变换

  当我们需要的分布f(x)不是简单的基本分布时,从中采样就变得很困难,这时候可以采取拒绝性采样的方法。选择一个简单的容易采样的分布g(x)和一个常数M使得

  Matlab 5 中使用的生成高斯分布的算法,极坐标形式的BoxMuller算法就是一种拒绝是采样算法。

  Box-Muller算法是通过[0,1]之间的均匀分布和单位圆来生成高斯分布的一种算法。

  首先通过生成2个符合均匀分布[-1,1]的数组成点p(x,y),如果点在单位圆内

  得到的向量v包含两个独立的符合高斯分布的元素。为什么它们符合高斯分布请参阅文献Sheldon Ross, A First Course in Probability,2002. 这种算法虽然不需任何估计,但是有21%的拒绝率,且中间包括对数,平方根运算,所以效率并不高。现在matlab里采用的是ziggurat algorithm来生成高斯分布,它是一种更高效的拒绝性采样方法,其速度已经和生成均匀分布的采样算法差不多。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!