Incomplete gamma function
igamma(
returns
the incomplete gamma function.nu
,z
)
igamma
uses the definition of the upper incomplete
gamma function. The MATLAB® gammainc
function
uses the definition of the lower incomplete gamma function, gammainc(z,
nu) = 1 - igamma(nu, z)/gamma(nu)
. The order of input arguments
differs between these functions.
Depending on its arguments, igamma
returns
floating-point or exact symbolic results.
Compute the incomplete gamma function for these numbers. Because these numbers are not symbolic objects, you get floating-point results.
A = [igamma(0, 1), igamma(3, sqrt(2)), igamma(pi, exp(1)), igamma(3, Inf)]
A = 0.2194 1.6601 1.1979 0
Compute the incomplete gamma function for the numbers converted to symbolic objects:
symA = [igamma(sym(0), 1), igamma(3, sqrt(sym(2))),... igamma(sym(pi), exp(sym(1))), igamma(3, sym(Inf))]
symA = [ -ei(-1), exp(-2^(1/2))*(2*2^(1/2) + 4), igamma(pi, exp(1)), 0]
Use vpa
to approximate symbolic results
with floating-point numbers:
vpa(symA)
ans = [ 0.21938393439552027367716377546012,... 1.6601049038903044104826564373576,... 1.1979302081330828196865548471769,... 0]
igamma
is implemented
according to the definition of the upper incomplete gamma function.
If you want to compute the lower incomplete gamma function, convert
results returned by igamma
as follows.
Compute the lower incomplete gamma function for these arguments
using the MATLAB gammainc
function:
A = [-5/3, -1/2, 0, 1/3]; gammainc(A, 1/3)
ans = 1.1456 + 1.9842i 0.5089 + 0.8815i 0.0000 + 0.0000i 0.7175 + 0.0000i
Compute the lower incomplete gamma function for the same arguments
using igamma
:
1 - igamma(1/3, A)/gamma(1/3)
ans = 1.1456 + 1.9842i 0.5089 + 0.8815i 0.0000 + 0.0000i 0.7175 + 0.0000i
If one or both arguments are complex numbers, use igamma
to
compute the lower incomplete gamma function. gammainc
does
not accept complex arguments.
1 - igamma(1/2, i)/gamma(1/2)
ans = 0.9693 + 0.4741i
The MATLAB gammainc
function
does not accept complex arguments. For complex arguments, use igamma
.
gammainc(z, nu) = 1 - igamma(nu, z)/gamma(nu)
represents
the lower incomplete gamma function in terms of the upper incomplete
gamma function.
igamma(nu,z) = gamma(nu)(1 - gammainc(z,
nu))
represents the upper incomplete gamma function in terms
of the lower incomplete gamma function.
gammainc(z, nu, 'upper') = igamma(nu, z)/gamma(nu)
.