码迷,mamicode.com
首页 > 其他好文 > 详细

通过均匀分布随机数产生器获得一个高斯分布随机数产生器

时间:2015-08-11 18:53:20      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:算法   均匀分布   高斯分布   box-muller   

一.Box-Muller Transfrom

    对于给定一个能产生(0,1)之间的均匀分布的随机数产生器,可以利用Box-Muller transform来获得一个产生标准高斯分布随机数的随机数产生器。
    Box-Muller transform可以描述如下:
    假设U1和U2是两个独立的随机变量,并且其分布为(0,1)之间的均匀分布,可以得到
技术分享
技术分享
    Z1和Z2是两个互相独立的随机变量,并且这两个随机变量的分布为标准高斯分布


二.Matlab实验

代码
 
%% clear
clc;
clear;
 
%% uniform distribution
N = 1000000;
U1 = rand(1, N);
U2 = rand(1, N);
 
 
%% Get Gussion distribution using box-Muller transfrom
Z1 = sqrt(-2 * log(U1)) .* cos(2 * pi * U2);
Z2 = sqrt(-2 * log(U1)) .* sin(2 * pi * U2);
 
 
 
%% visualisztion of PDF
subplot(2, 2, 1), hist(U1, 100), title( ‘The PDF of U1‘ );
subplot(2, 2, 2), hist(U2, 100), title( ‘The PDF of U2‘ );
subplot(2, 2, 3), hist(Z1, 100), title( ‘The PDF of Z1‘ );
subplot(2, 2, 4), hist(Z2, 100), title( ‘The PDF of Z2‘ );
  


U1,U2,Z1和Z2的概率密度如下
技术分享







参考文献
https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform





版权所有,欢迎转载,转载请注明出处,谢谢技术分享




版权声明:本文为博主原创文章,未经博主允许不得转载。

通过均匀分布随机数产生器获得一个高斯分布随机数产生器

标签:算法   均匀分布   高斯分布   box-muller   

原文地址:http://blog.csdn.net/sheng_ai/article/details/47422563

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!