scipy.special.

multigammaln#

scipy.special.multigammaln(a, d)[источник]#

Возвращает логарифм многомерной гаммы, также иногда называемой обобщённой гаммой.

Параметры:
andarray

Многомерная гамма вычисляется для каждого элемента a.

dint

Размерность пространства интегрирования.

Возвращает:
resndarray

Значения логарифма многомерной гамма-функции в заданных точках a.

Примечания

Формальное определение многомерной гаммы размерности d для вещественного a является

\[\Gamma_d(a) = \int_{A>0} e^{-tr(A)} |A|^{a - (d+1)/2} dA\]

с условием \(a > (d-1)/2\), и \(A > 0\) являясь множеством всех положительно определенных матриц размерности d. Обратите внимание, что a является скаляром: подынтегральное выражение многомерно, аргумент — нет (функция определена на подмножестве вещественного множества).

Это можно доказать равным гораздо более удобному уравнению

\[\Gamma_d(a) = \pi^{d(d-1)/4} \prod_{i=1}^{d} \Gamma(a - (i-1)/2).\]

Ссылки

R. J. Muirhead, Aspects of multivariate statistical theory (Wiley Series in probability and mathematical statistics).

Примеры

>>> import numpy as np
>>> from scipy.special import multigammaln, gammaln
>>> a = 23.5
>>> d = 10
>>> multigammaln(a, d)
454.1488605074416

Убедитесь, что результат согласуется с логарифмом уравнения, показанного выше:

>>> d*(d-1)/4*np.log(np.pi) + gammaln(a - 0.5*np.arange(0, d)).sum()
454.1488605074416