2026a
# 使用均匀分布反演生成随机数
此示例说明如何使用均匀分布反演方法生成随机数。 当可以计算逆累积分布函数时,这对于分布很有用,但不支持直接从分布中采样。
# 步骤 1. 从标准均匀分布生成随机数。
使用 rand 从区间 (0,1) 上的均匀分布生成 1000 个随机数。
using TyPlot
using TyMath
using TyStatistics
rng = MT19937ar(5489);
u = rand(rng,1000);
反演方法依赖于连续累积分布函数 (cdfs) 在开区间 (0,1) 上均匀分布的原理。 如果 u 是 (0,1) 上的均匀随机数,则
# 步骤 2. 从 Weibull 分布生成随机数。
使用逆累积分布函数从带有参数
x = wblinv(u,1,1);
histogram(x,20);
直方图显示使用 Weibull 逆 cdf 函数 wblinv 生成的随机数具有 Weibull 分布。
# 步骤 3. 从标准正态分布生成随机数。
u 中的相同值可以通过使用所需分布的逆 cdf 遵循相同的过程,从任何分布(例如标准正态分布)生成随机数。
figure()
x_norm = norminv(u,1,1);
histogram(x_norm,20)
直方图显示,通过使用标准正态逆 cdf norminv,从 u 生成的随机数现在具有标准正态分布。