Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中从Gumbel分布中抽取随机数_Matlab_Random_Statistics - Fatal编程技术网

在Matlab中从Gumbel分布中抽取随机数

在Matlab中从Gumbel分布中抽取随机数,matlab,random,statistics,Matlab,Random,Statistics,问题:我希望您能帮助我在Matlab中使用scalemu和locationbeta从Gumbel分布中提取随机数 我想使用提供的Gumbel发行版的定义(请参阅页面右侧的PDF和CDF定义) 注意:Matlab中描述的包evrnd无法使用(或者可能需要一些修改才能使用),因为它考虑了翻转符号 让我更好地解释最后一点 让我们将刻度固定为0,将位置固定为1 现在,以下和其他教科书(例如,第42页)的Gumbel PDF是 exp(-x)*exp(-exp(-x)) 尽管如此,evrnd似乎考虑了以下

问题:我希望您能帮助我在Matlab中使用scale
mu
和location
beta
从Gumbel分布中提取随机数

我想使用提供的Gumbel发行版的定义(请参阅页面右侧的PDF和CDF定义)

注意:Matlab中描述的包
evrnd
无法使用(或者可能需要一些修改才能使用),因为它考虑了翻转符号

让我更好地解释最后一点

让我们将刻度固定为
0
,将位置固定为
1

现在,以下和其他教科书(例如,第42页)的Gumbel PDF是

exp(-x)*exp(-exp(-x))

尽管如此,
evrnd
似乎考虑了以下PDF中的随机抽取:

exp(x)*exp(-exp(x))

您可以看到,在Matlab中,
-x
替换为
x

你知道最好的方法是什么吗?

根据,逆累积分布函数是

Q(p)=mu-beta*log(-log(p))

通过此功能,可以应用。因此

sz = [1 1e6]; % desired size for result array
mu = 1; % location parameter
beta = 2.5; % scale parameter
result = mu - beta*log(-log(rand(sz)))
给出带有i.i.d.Gumbel分布数字的
结果
。绘制这些示例值的柱状图

>> histogram(result, 51)


如果要使用函数(统计工具箱),只需更改输出的符号。根据文件,

R=evrnd(mu,sigma,[m,n,…])

此处使用的版本适用于建模极小值;此分布的镜像可用于通过对
R
求反来模拟最大值

因此,使用

result = -evrnd(mu, beta, sz);