Accelerating the pace of engineering and science

# igamma

Incomplete gamma function

## Description

example

igamma(nu,z) returns the incomplete gamma function.

igamma uses the definition of the upper incomplete gamma function. See 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.

## Examples

### Compute the Incomplete Gamma Function for Numeric and Symbolic Arguments

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]```

### Compute the Lower Incomplete Gamma Function

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```

## Input Arguments

expand all

### nu — Inputsymbolic number | symbolic variable | symbolic expression | symbolic function | symbolic vector | symbolic matrix

Input, specified as a symbolic number, variable, expression, or function, or as a vector or matrix of symbolic numbers, variables, expressions, or functions.

### z — Inputsymbolic number | symbolic variable | symbolic expression | symbolic function | symbolic vector | symbolic matrix

Input, specified as a symbolic number, variable, expression, or function, or as a vector or matrix of symbolic numbers, variables, expressions, or functions.

expand all

### Upper Incomplete Gamma Function

The following integral defines the upper incomplete gamma function:

$\Gamma \left(\eta ,z\right)=\underset{z}{\overset{\infty }{\int }}{t}^{\eta -1}{e}^{-t}dt$

### Lower Incomplete Gamma Function

The following integral defines the lower incomplete gamma function:

$\gamma \left(\eta ,z\right)=\underset{0}{\overset{z}{\int }}{t}^{\eta -1}{e}^{-t}dt$

### Tips

• 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).