matlab怎么产生随机数 Matlab用exprnd函数生成符合指数分布的随机数

时间:2022-05-30 15:14:23 来源: 三秦科技网


matlab产生随机数可以使用的方法:

1、均匀分布:

■ unifrnd (a, b, m, n)

产生m*n阶[a, b]均匀分布

■ unifrnd (a,b)

产生一个[a,b]的均匀随机数

示例:

2、rand (m, n);

产生m*n阶[0,1]均匀分布的随机数矩阵

■ rand(n);

产生n*n阶[0,1]均匀分布的随机数

示例:

3、binornd(n,p,[M,N,P,...])

产生的是服从二项分布的随机数,二项分布的参数为:n和p,

考虑一个打靶的例子,每枪命中率为p,共射击N枪,那么一共击中的次数就服从参数为(N,p)的二项分布。注意p要小于等于1且非负,N要为整数。

■ binornd(n,p,[M,N,P,...])

生成的随机数服从参数为(N,p)的二项分布,这些随机数排列成M*N*P... 阶矩阵。如果只写M,则生成M*M矩阵;

示例:

4、unidrnd(N,m,n)

产生m*n阶离散均匀分布的随机数矩阵;产生一个数值在1-N之间的mm*nn矩阵

示例:

5、exprnd (mu ,m, n)

产生m*n阶期望值为mu的指数分布的随机数矩阵

示例:

另外还有一些其他随机数,这里不再介绍,方法其本类似

实验中需要用exprnd 函数生成大量符合指数分布的随机数样本。于是 help exprnd

exprnd Random arrays from exponential distribution.

R = exprnd(MU) returns an array of random numbers chosen from the

exponential distribution withmean parameter MU. The size of R is

the size of MU.

R = exprnd(MU,M,N,...) or R = exprnd(MU,[M,N,...]) returns an

M-by-N-by-... array.

里边有个参数 Mu,虽然可以看到 MU 是 mean parameter,均值。或者大约等于期望值,即 下列常见的指数分布概率密度函数中的 lambda 的倒数。

搜了一下网上有人讲,但是,最后的结论不是很清晰,

为了谨慎,我自己来做实验验证一下吧:

1)代码;2)效果;3)结论。

1) 将 Mu 设置为5,然后生成1e4个符合指数分布的数,统计均值。

CNT_number = 10000;

Mu = 5;

a=exprnd(Mu, 1, CNT_number);

plot(a);

mean = sum(a) /CNT_number

2) 输出为:

mean =

5.0090

3)

exprnd 函数中参数 MU 指的是确实是均值,或者也可以理解为指数分布的期望值。

Davy_H

2014-7-14


网站简介 网站团队 本网动态 友情链接 版权声明 我要投稿

Copyright© 2014-2020 中原网视台(www.hnmdtv.com) All rights reserved.