binomial_cdf

Evaluates the binomial distribution function.

Synopsis

#include <imsls.h>

float imsls_f_binomial_cdf (int k, int n, float p)

The type double function is imsls_d_binomial_cdf.

Required Arguments

int k (Input)
Argument for which the binomial distribution function is to be evaluated.

int n (Input)
Number of Bernoulli trials.

float p (Input)
Probability of success on each trial.

Return Value

The probability that k or fewer successes occur in n independent Bernoulli trials, each of which has a probability p of success.

Description

The imsls_f_binomial_cdf function evaluates the distribution function of a binomial random variable with parameters n and p. It does this by summing probabilities of the random variable taking on the specific values in its range. These probabilities are computed by the recursive relationship:

 

such that:

 

To avoid the possibility of underflow, the probabilities are computed forward from 0 if k is not greater than n × p; otherwise, they are computed backward from n. The smallest positive machine number, ɛ, is used as the starting value for summing the probabilities, which are rescaled by (1 − p)nɛ if forward computation is performed and by pnɛ if backward computation is used.

For the special case of p = 0, imsls_f_binomial_cdf is set to 1; for the case p = 1, imsls_f_binomial_cdf is set to 1 if k = n and is set to 0 otherwise.

Example

Suppose X is a binomial random variable with n = 5 and p = 0.95. In this example, the function finds the probability that X is less than or equal to 3.

 

#include <imsls.h>

#include <stdio.h>

 

int main()

{

    int    k = 3, n = 5;

    float  p = 0.95, pr;

 

    pr = imsls_f_binomial_cdf(k,n,p);

    printf("Pr(x <= %d) = %6.4f\n", k, pr);

}

Output

 

Pr(x <= 3) = 0.0226

Informational Errors

IMSLS_LESS_THAN_ZERO

Since “k” = # is less than zero, the distribution function is set to zero.

IMSLS_GREATER_THAN_N

The input argument, k, is greater than the number of Bernoulli trials, n.