scipy.special.betainc¶
-
scipy.special.
betainc
(a, b, x, out=None) = <ufunc 'betainc'>¶ Incomplete beta function.
Computes the incomplete beta function, defined as [1]:
\[I_x(a, b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \int_0^x t^{a-1}(1-t)^{b-1}dt,\]for \(0 \leq x \leq 1\).
- Parameters
- a, barray-like
Positive, real-valued parameters
- xarray-like
Real-valued such that \(0 \leq x \leq 1\), the upper limit of integration
- outndarray, optional
Optional output array for the function values
- Returns
- array-like
Value of the incomplete beta function
See also
beta
beta function
betaincinv
inverse of the incomplete beta function
Notes
The incomplete beta function is also sometimes defined without the
gamma
terms, in which case the above definition is the so-called regularized incomplete beta function. Under this definition, you can get the incomplete beta function by multiplying the result of the SciPy function bybeta
.References
- 1
NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/8.17
Examples
Let \(B(a, b)\) be the
beta
function.>>> import scipy.special as sc
The coefficient in terms of
gamma
is equal to \(1/B(a, b)\). Also, when \(x=1\) the integral is equal to \(B(a, b)\). Therefore, \(I_{x=1}(a, b) = 1\) for any \(a, b\).>>> sc.betainc(0.2, 3.5, 1.0) 1.0
It satisfies \(I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))\), where \(F\) is the hypergeometric function
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
This functions satisfies the relationship \(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