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