您的位置:首页 > 其它

使用均匀分布随机数产生器构造任意分布的随机数产生器

2015-08-16 12:46 381 查看

一.算法原理

     在概率论中,有下面重要的结论:设随机变量Y的概率分布函数F(y)为连续函数,而X是在(0,1)上均匀分布的随机变量,设

,则Z与Y有相同的分布。
    因此,理论上,我们可以用(0,1)上的均匀分布来得到任意分布的随机数
    设随机变量Y的概率密度函数为f(y),则,我们可以按照下面的步骤来获得满足其分布的随机数:
1.根据给定的概率密度函数(PDF)f(y),通过积分算出概率分布函数F(y);
2.计算概率分布函数F(y)的反函数


3.生成一个(0,1)上均匀分布的随机数变量X,
4.那么

就是满足要求的分布的随机数。

二.使用均匀分布产生指数分布

1.指数分布是概率密度函数(PDF)为



  通过计算可以得到,指数分布的概率分布函数为



2.指数分布的概率分布函数的反函数为



3.获得一个在(0,1)之间均匀分布的随机数x,则通过下面的式子计算得到的y满足指数分布



2.MATLAB代码
[align=left] [/align]
[align=left]%% clear[/align]
[align=left]clc;[/align]
[align=left]clear;[/align]
[align=left] [/align]
[align=left]%% uniform distribution[/align]
[align=left]N = 100000000;[/align]
[align=left]U1 = rand(1, N);[/align]
[align=left] [/align]
[align=left]%% inverse function[/align]
[align=left]lamda = 1;[/align]
[align=left]Z1 = -1 / lamda * log(1 - U1);[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]%% visualisztion of PDF[/align]
[align=left]subplot(1, 2, 1), hist(U1, 100), title( 'The PDF of U1');[/align]
[align=left]subplot(1, 2, 2), hist(Z1, 100), title( 'The PDF of Z1');[/align]
[align=left]  [/align]

3.实验结果



参考文献
徐全智,数学建模

版权所有,欢迎转载,转载请注明出处,谢谢

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  均匀分布