scipy.special.gdtrib — SciPy v1.15.2 Manual (original) (raw)
scipy.special.gdtrib(a, p, x, out=None) = <ufunc 'gdtrib'>#
Inverse of gdtr vs b.
Returns the inverse with respect to the parameter b of p = gdtr(a, b, x)
, the cumulative distribution function of the gamma distribution.
Parameters:
aarray_like
a parameter values of gdtr(a, b, x)`. ``1/a
is the “scale” parameter of the gamma distribution.
parray_like
Probability values.
xarray_like
Nonnegative real values, from the domain of the gamma distribution.
outndarray, optional
If a fourth argument is given, it must be a numpy.ndarray whose size matches the broadcast result of a, b and x. out is then the array returned by the function.
Returns:
bscalar or ndarray
Values of the b parameter such that p = gdtr(a, b, x). b is the “shape” parameter of the gamma distribution.
See also
CDF of the gamma distribution.
Inverse with respect to a of gdtr(a, b, x).
Inverse with respect to x of gdtr(a, b, x).
Notes
The cumulative distribution function p is computed using the Cephes [1]routines igam and igamc. Computation of b involves a search for a value that produces the desired value of p using Chandrupatla’s bracketing root finding algorithm [2].
Note that there are some edge cases where gdtrib is extended by taking limits where they are uniquely defined. In particularx == 0
with p > 0
and p == 0
with x > 0
. For these edge cases, a numerical result will be returned forgdtrib(a, p, x)
even though gdtr(a, gdtrib(a, p, x), x)
is undefined.
References
[2]
Chandrupatla, Tirupathi R. “A new hybrid quadratic/bisection algorithm for finding the zero of a nonlinear function without using derivatives”. Advances in Engineering Software, 28(3), 145-149.https://doi.org/10.1016/s0965-9978(96)00051-8
Examples
First evaluate gdtr.
from scipy.special import gdtr, gdtrib p = gdtr(1.2, 3.4, 5.6) print(p) 0.94378087442
Verify the inverse.
gdtrib(1.2, p, 5.6) 3.3999999999999995