正态分布可以生成均匀分布吗?

通过算法生成的随机数是“伪随机”的,也就是说,在设定好第一个数之后,后面的数字的序列是确定的,并且经过一个非常大的循环会回到第一个数的状态,然后周而复始。显然,摇号、抽奖的程序是不能通过伪随机数来实现的。现实中常常基于某种热噪声来实现真正的随机数。假定某热噪声是标准正态分布,那么能否将它转换成(0,1)区间上的均匀分布______?

忽略测量和计算误差,可以转换为(0,1)区间上的均匀分布

无法转换为(0,1)区间上的均匀分布
信息不足,无法判断
借助伪随机数生成算法可以转换为(0,1)区间上的均匀分布
仅仅靠伪随机数生成算法,就可以生成(0,1)区间上的均匀分布
以上说法都不对

 

答案: A

http://www.zhihu.com/question/25111423

方法1:

生成两个独立的正太分布变量Z0,Z1,然后arctan(z0/z1)/(2pi)+0.5,可以生成0-1均匀分布的变量

arctan(z0/z1)的最大值为pi,最小值为-pi

其实不用计算:熟知生成二维标准正态分布的方法就是取两个独立的标准正态分布变量X和Y放在一起(X, Y)就行了,然后二维标准正态分布在直角坐标系里有各向同性,也就是(X, Y)这个点所指的方向和X轴(或者任何一个给定方向)的夹角是均匀分布的。

 

方法2:

X 服从正态分布,则 Y=\Phi(X) 服从[0,1]间的均匀分布,其中\Phi是正态分布函数的cumulative distribution function。 

对于任何的随机变量,如果已知其分布,均可以生产均匀分布。
设随机变量为X, 累积分布为F_X.因为随机变量的函数也是随机变量,所以F_X(X)也是随机变量。现在来求其分布,P\{F_X(X) \leq a\} = P\{X \leq F^{-1}_X(a)\}=F_X(F^{-1}_X(a))=a,考虑到累积函数的值域,其为[0, 1]上的均匀分布。  

其实这个是利用了 sklar‘s 定理 的引理(Inverse Sampling Theorem) 只需利用正态分布函数的CDF,以及满足正态分布的随机变量X,即可生成一个满足均匀分布的随机变量。
方法如下:(就假设最简单的标准正态分布的情形)
设标准正态分布函数的CDF为F(x),随机变量X服从标准正态分布
那么 定义 随机变量 Y=F(X), Y即服从[0,1]上的均匀分布

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MATLAB中,要将正态分布(Normal Distribution)转化为均匀分布(Uniform Distribution),你可以使用随机数生成函数结合正态分布的累积分布函数(Cumulative Distribution Function, CDF)。正态分布的随机数可以通过`randn`函数获得,而将其转换均匀分布通常涉及查找正态分布下对应于给定均匀分布区间内值的CDF值,然后用这些CDF值对随机数进行映射。 以下是基本步骤: 1. 生成正态分布的随机数:使用`rv = randn(n)`或`rv = normrnd(mu, sigma, n)`,其中`mu`是均值,`sigma`是标准差,`n`是你想要的随机数数量。 2. 计算正态分布对应的CDF值:`cdf_values = cdf(normrnd(mu, sigma),rv)`,这里的`cdf`函数会计算正态分布下随机数rv的概率。 3. 将CDF值映射到[0,1]范围内:因为均匀分布就是这样的,所以直接使用`uniform_values = cdf_values`。 4. 反变换:如果需要将均匀分布映射回你指定的范围,可以使用`uniform_values * (ub - lb) + lb`,其中`lb`和`ub`是目标均匀分布的最小和最大值。 如果你有具体的数值参数或者需要更复杂的转换,比如连续的正态分布到离散的均匀分布,可能需要一些额外的处理。如果你提供具体的应用场景或参数,我可以给出更详细的示例代码。相关问题包括: 1. 如何在MATLAB中创建特定均值和标准差的正态分布? 2. 当目标均匀分布的范围不是[0,1]时,如何调整转换公式? 3. 如何处理正态分布的非对称性,使得转换后的均匀分布更接近原始数据分布?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值