python - scipy 中不完整的 Gamma 函数

标签 python scipy

我想计算 wolfram alpha 调用的不完全 Gamma 函数 (see here) :

`gamma[0, 0.1]`

wolfram alpha 输出为 1.822scipy 给我的唯一类似的是 scipy.special.gammainc,但它有一个不同的 definition比 wolfram alpha 如何定义它们的不完整 Gamma 函数。

不足为奇

import scipy
scipy.special.gammainc(0, 0.1)

给我 nanscipy 是否支持我正在寻找的东西?

最佳答案

根据 http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.special.gammainc.html ,第一个参数必须是正数,而你有零;这就是你得到 NaN 的原因。

也就是说,假设我们尝试计算 Gamma[0.01,0.1]。在这种情况下,WolframAlpha 返回 1.80324:

enter image description here

根据 http://mathworld.wolfram.com/IncompleteGammaFunction.html ,这是上不完全 Gamma 函数,而 Scipy 输出的是 WolframAlpha 称为下不完全 Gamma 函数的缩放版本。通过使用等式 10 中的恒等式,可以看出在 a>0 的情况下,您可以使用以下内容:

from scipy.special import gammainc
from scipy.special import gamma
gamma(0.01)*(1 - gammainc(0.01,0.1))

返回 1.8032413569025461 与 WolframAlpha 一致。

简而言之,WolframAlpha中的Gamma[a,x]对应于Scipy中的gamma(a)*(1-gammainc(a,x)),前提是a>0.

关于python - scipy 中不完整的 Gamma 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38713199/

相关文章:

python - 基于两个 Dataframe 列构建计数字典

带有可选参数(即函数)的 Python 装饰器

python-2.7 - 如何在 python 中求解 3 个非线性方程

python - 解决解决方案不可行的不平等系统

python - 如何从 lxml.html.html5paser 元素标记内部删除 namespace 值

python - Django 。如何发表评论? - 最简单的例子。 CSRF验证失败

python - 如何从笔记本单元终止当前的 colab session

python - Numpy einsum 表现不佳。需要注意什么?

python - 使用 scipy.integrate.quad 积分复数

Python:如何获得两个连续分布的卷积?