【个人总结系列-1】概率特性仿真实验与程序-Matlab仿真-随机数生成-负指数分布-k阶爱尔兰分布-超指数分布

  • 格式:docx
  • 大小:70.37 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

概率特性仿真实验与程序-Matlab 仿真-随机数生成-负指数分布-k 阶

爱尔兰分布-超指数分布

使用Java 中的SecureRandom .nextDouble()生成一个0~1之间的随机浮点数,然后使用反函数法生成一个符合指数分布的随机变量(反函数求得为λ)

1ln(R x --=)。指数分布的

参数λ为getExpRandomValue 函数中的参数lambda 。生成一个指数分布的随机变量的代码如下,后面都将基于该函数生成一组负指数分布、K 阶爱尔兰分布、2阶超指数分布随机变量,然后将生成的随机数通过matlab 程序进行仿真,对随机数的分布特性进行验证。

生成一组参数为lambda (λ)的负指数分布的随机变量

通过下面的函数生成一组λ参数为lambda 的随机变量,其中size 表示随机变量的个数。通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存在exp.txt 文件中,供下面介绍的matlab 程序分析。

通过genExp (1000000, 0.2)生成1000000个参数为0.2的随机变量,然后保存到exp.txt 中,然后使用下面的matlab 程序对这些随机数的性质进行验证,如果这些随机数符合λ=0.2的负指数分布,则其均值应为1/λ,即1/0.2=5,其方差应为1/λ2=1/(0.2*0.2)=25。然后对这些随机数的概率分布进行统计分析,以长度为1的区间为统计单位,统计各区间内随机数出现的频数,求出在各区间的概率,绘制图形,与参数为λ的真实负指数分布曲线进行对比。下图为matlab 代码

如下图所示,均值为4.996423,约等于5,方差为24.96761,约等于25,与实际情况相符。此外,通过matlab统计的概率密度函数曲线与真实曲线基本重合(其中在0-1之间没有重合的原因是,实际情况是在0-1之间有无数个点,而matlab统计时以1为一个区间进行统计,只生成了一个统计项,而这无数个点的概率全部加到1点处,因此两条线没有重合,而且1点处的值远大于实际值,如果统计单位划分越细,0-1之间的拟合度更高),表明生成的随机数符合负指数分布。

生成一组参数为lambda(λ)的k阶爱尔兰分布的随机变量

通过下面的函数生成一组λ参数为lambda的k阶爱尔兰分布随机变量,其中size表示随机变量的个数,k表示阶数。由于k阶爱尔兰分布是k个相同lambda的负指数分布的串联,因此可以将连续k个负指数分布的随机变量相加成为一个爱尔兰分布的随机变量,从而生成爱尔兰分布的随机变量,如下面程序所示。通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存在erlang_k.txt文件中,供下面介绍的matlab程序分析。

通过genErlang(1000000, 0.2, 2)、genErlang(1000000, 0.2, 4)、genErlang(1000000, 0.2, 8)分别生成1000000个λ参数为0.2的2、4、8阶爱尔兰随机变量,然后分别保存到erlang_2.txt、erlang_4.txt、erlang_8.txt中,然后使用下面的matlab程序对这些随机数的性质进行验证,验证的方法与上面相同,对于k=2,则其均值应为k/λ,即2/0.2=10,其方差应为k/λ2=2/(0.2*0.2)=50;同理,对于k=4,均值应等于20,方差应等于100;对于k=8,均值应等于40,方差应等于200。下图为matlab代码。

如下图所示,k=2时,均值为9.992167,约等于10,方差为49.93048,约等于50;k=4时,均值为20.00298,约等于20,方差为100.4140,约等于100;k=8时,均值为40.03118,约等于40,方差为200.4146,约等于200,以上结果都与实际情况符合。

生成一组2阶超指数分布的随机变量

通过下面的函数生成一组λ参数分别为lambda1和lambda2的2阶超指数分布随机变量,其中size表示随机变量的个数,lambda1和lambda2表示两个负指数分布的λ参数,这里指定进入分支1的概率为α1,进入分支2的概率为α2。由于2阶超指数分布是2个λ参数分别为lambda1和lambda2的负指数分布的并联,且以一定概率进入各分支,因此可以根据概率随机的从两个λ参数不同的负指数分布中抽取一个随机变量作为一个超指数分布的随机变量,如下面程序所示。通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存

在hyper_exp.txt文件中,供下面介绍的matlab程序分析。

通过genHyperExp(1000000, 0.2, 0.5)生成1000000个参数分别为0.2和0.5,α1=0.3、α2=0.7的超指数分布随机变量,然后保存到hyper_exp.txt中,使用下面的matlab程序对这些随机数的性质进行验证,验证的方法与上面相同,如果生成的随机数正确,均值应=α1/λ1+α2/λ2=0.3/0.2+0.7/0.5=2.9,方差应=2*(α1/λ1^2+α2/λ2^2)-(α1/λ1+α2/λ2)^2=12.19。下图为matlab代码。

如下图所示,均值为2.896629,约等于2.9,方差为12.17702,约等于12.19,以上结果与实际情况符合。