利用均匀分布生成其他分布随机数、蒙特卡罗方法原理

       有时候需要利用计算机生成指定连续分布的随机数,比如指数分布、正态分布、伽马分布等,一般我们会用相同数量的[0,1]之间均匀分布的随机数去生成其他形式连续分布随机量。本篇适用于连续的概率分布函数,并不适合于生成离散分布的随机数,首先介绍并证明并以下定理。

      一、定理:有连续随机变量x,x的累积分布函数y=F(x)也是连续函数,那么函数值y也是一个随机变量,且y是均匀分布。

     1.1 定理证明

      这个定理读起来非常拗口,其实用大白话说就是y=F(x)是随机变量x的分布函数,学过概率论的都应该知道分布函数肯定是一个递增函数,分布函数一般都如下图所示:

分布函数.png

定理要求这个分布函数还得连续,满足这个条件后,这个分布函数的值y也是一个随机变量,并且y是[0,1]之间均匀分布的随机变量,证明如下:

Untitled-1.jpg

这个定理告诉我们,因为这个分布函数是连续、单调递增的,那么其反函数x=F-1(y)也一定是连续、单调递增的,这就保证了[0,1]之间均匀的随机数y与目标连续分布的随机数x存在一一对应的关系。比如需要生成10个λ=0.5的指数分布随机数时,只要先生成10个[0,1]之间均匀分布的随机数y1,y2,y3...y10,然后利用其分布函数的反函数:

g2222if.gif

ln1.gif

就能依次生成10个指数分布随机数: x1,x2,x3...x10

    1.2 蒙特卡罗法

    定理说明了一个均匀随机分布随机变量与另一个分布随机变量的一一对应关系,是一种函数关系,所谓一一对应关系数学上称为映射,具体说是一种双射(单射且满射),以上的定理运用了一个[0,1]之间均匀分布变量y一一对应于随机变量x,这样一来就可以生成了一系列目标分布的随机变量,y在这里其实代表了一个概率(概率不就是一个0,1之间的数值吗?),一个分布函数上的具体值。需要强调,并不是说随机变量等于x时的概率是y,由分布函数定义知连续分布单点概率值都是0,连续概率是指随机变量X(大写)小于等于x的概率是y,可表达为:P(X<=x)=F(x)=y,所以定理中要求分布函数实际上是一个累积分布函数。理解以上内容后我们来介绍蒙特卡罗法的一个应用---利用蒙特卡罗法计算积分值。

fx.jpg

上面的函数f(x)的定义域是[0,1],值域也是[0,1],f(x)无法通过换元法和分部积分法等传统方法求积分时,可利用以上定理来实现,可以通过生成一系列随机变量并求其分布的概率,最后得出的概率就是积分值。

-免费试读结束-
登录|注册后打赏作者吧! 0.8元
大腿  ip: 127.0.0.1
2020-12-30 22:15:46
哎呦,不错哦