这个例子展示了如何使用均匀分布反演方法生成随机数。当可以计算逆累积分布函数,但不支持直接从分布中取样时,这对分布很有用。金宝app
使用兰德
从区间(0,1)上均匀分布生成1000个随机数。
rng (“默认”)%的再现性u =兰德(1000 1);
反演方法依赖于连续累积分布函数(cdfs)均匀分布于开放区间(0,1)的原理。如果
是(0,1)上的一个均匀随机数吗
产生一个随机数
从任何连续分布与指定的CDFF
.
使用逆累积分布函数从带有参数的威布尔分布生成随机数一个= 1
和B = 1
对应的概率u
.策划的结果。
x = wblinv (u, 1,1);直方图(x, 20);
直方图显示了使用Weibull逆cdf函数生成的随机数wblinv
具有威布尔分布。
相同的值u
可以从任何分布生成随机数,例如标准正态分布,通过使用所需分布的反CDF遵循相同的过程。
图x_norm = norminv(u,1,1);直方图(x_norm 20)
直方图表明,使用标准正态逆cdfnorminv
,产生的随机数u
这是标准正态分布。