gpt4 book ai didi

c++ - C++ 中的广义极值分布 (GEV)

转载 作者:行者123 更新时间:2023-11-28 06:24:31 24 4
gpt4 key购买 nike

GEV 分布(http://en.wikipedia.org/wiki/Generalized_extreme_value_distribution)有 3 个参数:

μ ∈ R — 位置,

σ > 0 — 尺度

ξ ∈ R — 形状

但是,C++ 11 库只支持 extreme_value_distribution,它只支持 2 个参数:

http://www.cplusplus.com/reference/random/extreme_value_distribution/

所以这个实现缺少形状参数 (ξ)。有没有一种方法可以使用 GEV 分布在 C++ 中生成随机数?

编辑:维基百科建议 GEV 可以从 EV、Weibull 和 Frechet 构建。看来可以用EV和C++中的Weibull实现来构建。

最佳答案

我不是概率论者,但我有理由相信您可以找到累积分布函数的逆函数并将其应用于从 (0,1) 上的均匀分布中获取的值。从提供的维基百科链接中,逆函数为一般情况是

F^-1(x; mu, sigma, xi) = mu + ((-ln x)^(-xi) - 1)*sigma/xi

(假设我没有失误,但很容易检查自己)。您所要做的就是将此函数应用于从统一 (0,1] 中提取的值,并且应根据需要分配结果值。当然,如果您尝试计算值,则 xi = 0 的情况将失败这样,但这种情况无论如何都是由 extreme_value_distribution 实现的。

抱歉格式问题,我熟悉 LaTeX 但完全不熟悉如何在此处评论时使用它。

关于c++ - C++ 中的广义极值分布 (GEV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28744065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com