scipy.special.gammaln#

scipy.special.gammaln(x, out=None) = <ufunc 'gammaln'>#

Logarithmus des Absolutwertes der Gammafunktion.

Definiert als

\[\ln(\lvert\Gamma(x)\rvert)\]

wobei \(\Gamma\) die Gammafunktion ist. Weitere Details zur Gammafunktion finden Sie unter [dlmf].

Parameter:
xarray_like

Reeller Argument

outndarray, optional

Optionales Ausgabe-Array für die Funktionsergebnisse

Rückgabe:
skalar oder ndarray

Werte des Logarithmus des Absolutwertes von Gamma

Siehe auch

gammasgn

Vorzeichen der Gammafunktion

loggamma

Hauptzweig des Logarithmus der Gammafunktion

Hinweise

Dies ist dieselbe Funktion wie die Funktion der Python-Standardbibliothek math.lgamma.

Wenn sie in Verbindung mit gammasgn verwendet wird, ist diese Funktion nützlich, um im Logarithmusraum auf der reellen Achse zu arbeiten, ohne mit komplexen Zahlen umgehen zu müssen, gemäß der Beziehung exp(gammaln(x)) = gammasgn(x) * gamma(x).

Für komplexwertige Log-Gamma verwenden Sie stattdessen loggamma anstelle von gammaln.

gammaln hat experimentelle Unterstützung für Python Array API Standard-kompatible Backends zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie die Umgebungsvariable SCIPY_ARRAY_API=1 setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen von Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

Dask

n/a

Siehe Unterstützung für den Array API Standard für weitere Informationen.

Referenzen

[dlmf]

NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/5

Beispiele

>>> import numpy as np
>>> import scipy.special as sc

Sie hat zwei positive Nullstellen.

>>> sc.gammaln([1, 2])
array([0., 0.])

Sie hat Pole bei nicht-positiven ganzen Zahlen.

>>> sc.gammaln([0, -1, -2, -3, -4])
array([inf, inf, inf, inf, inf])

Sie nähert sich asymptotisch x * log(x) an (Stirling-Formel).

>>> x = np.array([1e10, 1e20, 1e40, 1e80])
>>> sc.gammaln(x)
array([2.20258509e+11, 4.50517019e+21, 9.11034037e+41, 1.83206807e+82])
>>> x * np.log(x)
array([2.30258509e+11, 4.60517019e+21, 9.21034037e+41, 1.84206807e+82])