scipy.special.betainc#
-
scipy.special.betainc(a, b, x, выход=None) =
'betainc'> # Регуляризованная неполная бета-функция.
Вычисляет регуляризованную неполную бета-функцию, определенную как [1]:
\[I_x(a, b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \int_0^x t^{a-1}(1-t)^{b-1}dt,\]для \(0 \leq x \leq 1\).
Эта функция является функцией кумулятивного распределения для бета-распределения; её диапазон [0, 1].
- Параметры:
- a, barray_like
Положительные, вещественные параметры
- xarray_like
Вещественное число такое, что \(0 \leq x \leq 1\), верхний предел интегрирования
- выходndarray, необязательно
Необязательный выходной массив для значений функции
- Возвращает:
- скаляр или ndarray
Значение регуляризованной неполной бета-функции
Смотрите также
betabeta function
betaincinvобратная функция регулярной неполной бета-функции
betainccдополнение регуляризованной неполной бета-функции
scipy.stats.betaбета-распределение
Примечания
Термин регуляризованный в названии этой функции относится к масштабированию функции членами гамма-функции, показанными в формуле. Когда не указано как регуляризованный, имя неполная бета-функция часто относится только к интегральному выражению, без гамма-членов. Можно использовать функцию
betaизscipy.specialчтобы получить эту «нерегуляризованную» неполную бета- функцию, умножив результатbetainc(a, b, x)bybeta(a, b).betainc(a, b, x)рассматривается как двухпараметрическое семейство функций одной переменной x, а не как функция трех переменных. Это влияет только на предельные случаиa = 0,b = 0,a = inf,b = inf.В общем случае
\[\lim_{(a, b) \rightarrow (a_0, b_0)} \mathrm{betainc}(a, b, x)\]рассматривается как поточечный предел в
x. Таким образом, например,betainc(0, b, 0)равно0дляb > 0, хотя он был бы неопределённым при рассмотрении одновременного предела(a, x) -> (0+, 0+).Эта функция оборачивает
ibetaподпрограмма из библиотеки Boost Math C++ [2].betaincимеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окруженияSCIPY_ARRAY_API=1и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).Библиотека
CPU
GPU
NumPy
✅
н/д
CuPy
н/д
✅
PyTorch
✅
⛔
JAX
✅
✅
Dask
✅
н/д
См. Поддержка стандарта array API для получения дополнительной информации.
Ссылки
[1]NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/8.17
[2]Разработчики Boost. «Boost C++ Libraries». https://www.boost.org/.
Примеры
Пусть \(B(a, b)\) будет
betaфункция.>>> import scipy.special as sc
Коэффициент в терминах
gammaравно \(1/B(a, b)\). Также, когда \(x=1\) интеграл равен \(B(a, b)\). Следовательно, \(I_{x=1}(a, b) = 1\) для любого \(a, b\).>>> sc.betainc(0.2, 3.5, 1.0) 1.0
Оно удовлетворяет \(I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))\), где \(F\) является гипергеометрической функцией
hyp2f1:>>> a, b, x = 1.4, 3.1, 0.5 >>> x**a * sc.hyp2f1(a, 1 - b, a + 1, x)/(a * sc.beta(a, b)) 0.8148904036225295 >>> sc.betainc(a, b, x) 0.8148904036225296
Эта функция удовлетворяет соотношению \(I_x(a, b) = 1 - I_{1-x}(b, a)\):
>>> sc.betainc(2.2, 3.1, 0.4) 0.49339638807619446 >>> 1 - sc.betainc(3.1, 2.2, 1 - 0.4) 0.49339638807619446