scipy.special.gammaln#

scipy.special.gammaln(x, выход=None) = 'gammaln'>#

Логарифм абсолютного значения гамма-функции.

Определяется как

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

где \(\Gamma\) является гамма-функцией. Для получения дополнительных сведений о гамма-функции см. [dlmf].

Параметры:
xarray_like

Вещественный аргумент

выходndarray, необязательно

Необязательный выходной массив для результатов функции

Возвращает:
скаляр или ndarray

Значения логарифма абсолютного значения гамма-функции

Смотрите также

gammasgn

знак гамма-функции

loggamma

главная ветвь логарифма гамма-функции

Примечания

Это та же функция, что и функция из стандартной библиотеки Python math.lgamma.

При использовании в сочетании с gammasgn, эта функция полезна для работы в логарифмическом пространстве на вещественной оси без необходимости иметь дело с комплексными числами через соотношение exp(gammaln(x)) = gammasgn(x) * gamma(x).

Для комплекснозначного логарифма гамма-функции используйте loggamma вместо gammaln.

gammaln имеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окружения SCIPY_ARRAY_API=1 и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

Dask

н/д

См. Поддержка стандарта array API для получения дополнительной информации.

Ссылки

[dlmf]

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

Примеры

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

Он имеет два положительных нуля.

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

Он имеет полюса в неположительных целых числах.

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

Он асимптотически приближается к x * log(x) (формула Стирлинга).

>>> 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])