问题标签 [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.
excel - 如果随机数超过 0.96,Gamma_inv 返回错误
如果传递给 Gamma_inv 的随机数大约高于 0.96,则返回错误。这在 Excel 和 VBA 中都会发生。我正在运行 Monte Carlo,而这仅在 40,000 多次运行中发生 10 次左右。这是我使用它的方式。alpha 和 beta 总是 >0。如果“gammatrunc”= 1,我得到错误。如果我将其设置为 0.95,则不会出现错误:
错误如下所示:
我很感激任何关于为什么会发生这种情况的想法。
谢谢
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 必须是正参数}
我知道我错了,但是我哪里错了/我该如何解决它并使用我在文章中读到的内容?
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
我的问题:
- 是否有可以计算其负域的 gamma 函数的 boost 替代方法?
- 我在上面提到的阶乘和 tgamma 函数的实现域的链接的 boost 文档中找不到。事实上,我可能只是错误地使用它们。确定什么是域/正确用法的方法是什么?
谢谢。
python - scipy中t分布的熵:如何输入digamma和beta函数的自由度?
遵循 t 分布的变量 X 的熵的封闭式解析解,在此处导出,为
看到python有函数scipy.special.digamma
和scipy.special.beta
,上面的公式怎么用代码实现呢?
令我困惑的是,刚才提到的函数并没有根据文档将自由度参数nu (v)作为输入。一个运行的例子会有所帮助
python-3.x - Tensorflow 中的 polygamma 函数要复杂吗?
我正在尝试计算 Tensorflow(tf.math.polygamma) 中的 polygamma 函数。但是,它不接受复数。是否有任何解决方法可以解决此问题?
swift - 取决于伽马函数的值太快达到无穷大。熟悉gamma函数和swift框架的,请解释一下
我创建了一个值,该值取决于基于 swift 中的 gamma 函数的一些计算。
下面是定义这个值的代码。
只要“a”达到 10 左右,“b”达到 25 左右,norm 就有一个“inf”值。我想知道为什么会这样。它是否与编程语言 swift、我用来表示“规范”值的对象有关,还是与我不理解的更深层次的数学原因有关?有人可以解释一下吗?
r - R中的伽马函数
我正在尝试使用以下规则从头开始实现伽玛函数:
- 如果 z 等于 1,我们返回 1;
- 项目清单
- gama(z) (使用函数的递归) (z-1)*gamma(z-1);
- 如果 z 是自然数,那么我们返回 (z-1) 的阶乘;
- 如果 z 等于 1/2,我们返回 sqrt(pi)。
这种条件使我得到以下更简化的条件
- 如果 z 是自然的,我们使用第三个属性;
- 如果 z 是 b/2 的形状,其中 b 是自然数,我们使用属性 2 和 4。
- 否则,我们应用第二个公式,直到 n 小于 1。当 z 小于 1 时,我们应用这个公式:
我的代码看起来像这样,但我似乎无法使其适用于符合第 8 点标准的值。
它给出了这个错误:
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中的发行说明,但没有任何信息。
我该如何解决这个问题?提前感谢您的建议。
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 无法处理它。
有人知道如何解决我的问题吗?