9

scipy.special.gammainc、最初の引数に負の値を取ることはできません。Pythonでできる他の実装はありますか? 確かに手動で統合することはできますが、既に存在する優れた代替手段があるかどうかを知りたいです。

Correct result: 1 - Gamma[-1,1] = 0.85

Use Scipy: scipy.special.gammainc(-1, 1) = 0

ありがとう。

4

3 に答える 3

8

私は通常、特別な関数が必要なときはいつでもmpmathに手を伸ばしますが、パフォーマンスについてはあまり心配していません。(ただし、多くの場合、そのパフォーマンスはとにかくかなり優れています。)

例えば:

>>> import mpmath
>>> mpmath.gammainc(-1,1)
mpf('0.14849550677592205')
>>> 1-mpmath.gammainc(-1,1)
mpf('0.85150449322407795')
>>> mpmath.mp.dps = 50 # arbitrary precision!
>>> 1-mpmath.gammainc(-1,1)
mpf('0.85150449322407795208164000529866078158523616237514084')
于 2012-05-10T22:27:46.077 に答える
2

私はちょうど同じ問題を抱えていて、a<0のときに関数の再帰関係を使用することになりました。 http://en.wikipedia.org/wiki/Incomplete_gamma_function#Properties

また、scipy 関数 gammainc および gammaincc は正規化された形式 Gamma(a,x)/Gamma(a) を与えることにも注意してください。

于 2013-02-28T10:24:42.603 に答える