问题标签 [gamma-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
79 浏览

excel - 如果随机数超过 0.96,Gamma_inv 返回错误

如果传递给 Gamma_inv 的随机数大约高于 0.96,则返回错误。这在 Excel 和 VBA 中都会发生。我正在运行 Monte Carlo,而这仅在 40,000 多次运行中发生 10 次左右。这是我使用它的方式。alpha 和 beta 总是 >0。如果“gammatrunc”= 1,我得到错误。如果我将其设置为 0.95,则不会出现错误:

错误如下所示:

带有错误消息的输出

我很感激任何关于为什么会发生这种情况的想法。

谢谢

0 投票
1 回答
218 浏览

python-3.x - Bachelier Normal Implicit Vol Python 计算(帮助) Jekel

编写一个 python 脚本来计算 Implied Normal Vol ;符合 Jekel 文章(行业标准)。

https://jaeckel.000webhostapp.com/ImpliedNormalVolatility.pdf

他们说他们正在使用广义不完全伽马函数逆。

来电:

F(x)=v/(K - F) -> 找到使这成为真的 x

其中 F 是逆不完全 Gamma 函数

并且 x = (K - F)/(T*sqrt(T) ; v 是调用的值

对于那个 x,IV 是 =(KF)/x*sqrt(T)

我正在使用的示例:

F=40

X=38

T=100/365

v=5.25

音量= 20%

使用方程式我应该能够回退 20% 的 Vol

Scipy 在其特殊功能中有上下不完全 Gamma Function Inverse。

较低: scipy.special.gammaincinv(a, y) :{a 必须是正参数}

上: scipy.special.gammainccinv(a, y) : {a 必须是正参数}

我知道我错了,但是我哪里错了/我该如何解决它并使用我在文章中读到的内容?

0 投票
3 回答
388 浏览

c++ - 计算负实数值的 Gamma 函数(C++,Boost)

以下无限严重需要计算非整数、负数、实数的阶乘: 无限严重:

(这是一种计算椭圆周长的方法,a 和 b 是半长轴和半短轴,h 定义为:
h = (ab)^2/(a+b)^2)

阶乘函数可以通过 Gamma 函数扩展到负值,该函数是为所有非负整数的实数定义的。

在编写严重的代码时,我尝试了 boost::math::factorial 和 boost::math::tgamma ,它只给出了-1(不包括)-1.5 的结果,例如给出一个错误。

输出:

-0.5 的阶乘 = 1
tgamma 的 -0.5 = -3.54491
在抛出 'boost::exception_detail::clone_implboost::exception_detail::error_info_injector<std::domain_error >' 的实例后调用终止什么():函数提升错误: :math::tgamma(long double): 在负整数 0 处评估 tgamma。中止(核心转储)

boost factorial: boost factorial
boost tgamma: boost tgamma

我的问题:

  1. 是否有可以计算其负域的 gamma 函数的 boost 替代方法?
  2. 我在上面提到的阶乘和 tgamma 函数的实现域的链接的 boost 文档中找不到。事实上,我可能只是错误地使用它们。确定什么是域/正确用法的方法是什么?

谢谢。

0 投票
2 回答
235 浏览

r - Weibull 分布的更新函数

m(t)Weibull 分布的更新函数t = 10如下所示。在此处输入图像描述

我想找到 的值m(t)。我写了以下r代码来计算m(t)

输出是m(t) = 2.670408e+93。我的迭代程序正确吗?谢谢。

0 投票
2 回答
154 浏览

python - scipy中t分布的熵:如何输入digamma和beta函数的自由度?

遵循 t 分布的变量 X 的熵的封闭式解析解,在此处导出,为

在此处输入图像描述

看到python有函数scipy.special.digammascipy.special.beta,上面的公式怎么用代码实现呢?

令我困惑的是,刚才提到的函数并没有根据文档将自由度参数nu (v)作为输入。一个运行的例子会有所帮助

0 投票
0 回答
37 浏览

python-3.x - Tensorflow 中的 polygamma 函数要复杂吗?

我正在尝试计算 Tensorflow(tf.math.polygamma) 中的 polygamma 函数。但是,它不接受复数。是否有任何解决方法可以解决此问题?

0 投票
0 回答
18 浏览

swift - 取决于伽马函数的值太快达到无穷大。熟悉gamma函数和swift框架的,请解释一下

我创建了一个值,该值取决于基于 swift 中的 gamma 函数的一些计算。

下面是定义这个值的代码。

只要“a”达到 10 左右,“b”达到 25 左右,norm 就有一个“inf”值。我想知道为什么会这样。它是否与编程语言 swift、我用来表示“规范”值的对象有关,还是与我不理解的更深层次的数学原因有关?有人可以解释一下吗?

0 投票
1 回答
71 浏览

r - R中的伽马函数

我正在尝试使用以下规则从头开始实现伽玛函数:

  1. 如果 z 等于 1,我们返回 1;
  2. 项目清单
  3. gama(z) (使用函数的递归) (z-1)*gamma(z-1);
  4. 如果 z 是自然数,那么我们返回 (z-1) 的阶乘;
  5. 如果 z 等于 1/2,我们返回 sqrt(pi)。

这种条件使我得到以下更简化的条件

  1. 如果 z 是自然的,我们使用第三个属性;
  2. 如果 z 是 b/2 的形状,其中 b 是自然数,我们使用属性 2 和 4。
  3. 否则,我们应用第二个公式,直到 n 小于 1。当 z 小于 1 时,我们应用这个公式: 伽马 (z) 公式

我的代码看起来像这样,但我似乎无法使其适用于符合第 8 点标准的值。

它给出了这个错误:

0 投票
0 回答
25 浏览

c++ - gamma_imp() 函数不适用于最新版本的 boost 库(版本 1_78)

我正在将我们的源代码的 boost 库更新到最新版本,并遇到了这个问题,即 gamma_imp() 函数的最后一个参数(存在于 <boost\math\special_functions\gamma.hpp> 中)在 boost 中不再可用。最后一个参数是一个类型的变量boost::math::lanczos::lanczos22。但是lanczos22过去在 <boost\math\special_functions\lanczos.hpp> 中声明的类在最新版本中不再可用。

我试图查看https://www.boost.org/users/history/version_1_78_0.html中的发行说明,但没有任何信息。

我该如何解决这个问题?提前感谢您的建议。

0 投票
1 回答
38 浏览

python - 将伽马分布参数拟合到期望和概率

我的问题如下。我测量了一堆不同的物理特性,并将方法和测量的不确定性一直传播到某种效率比。对于我所有的物理特性,正态分布似乎是一个不错的选择,并且对于前几次计算和相应的传播,我的不确定性相当低。我将所有不确定性作为 kp=2 的扩展不确定性转发,这意味着覆盖了所有可能值的 95.45%。

但是,对于我现在为了获得效率而执行的计算,我最终得到了 (16+/-31)% 这样的结果,这是不可能的,因为我的效率只能从 0 扩展到 1。我的假设是,我发现效率的“正确”期望值,但我的概率分布应该是正偏伽马分布而不是正态分布。假设区间 [0; 0.16+0.31], [0; 0.16+0.31*3/2] 和 [0;1] 涵盖了所有可能值的 95.45%、99.73% 和 100%,我应该能够分析地计算伽马分布参数 alpha 和 beta。不幸的是,以下使用 sympy 的代码不起作用,因为 sympy 无法处理它。

有人知道如何解决我的问题吗?