Algorithms_in_C++  1.0.0
Set of algorithms implemented in C++.
poisson_dist.cpp File Reference

Poisson statistics More...

#include <cmath>
#include <iostream>
Include dependency graph for poisson_dist.cpp:

Functions

double poisson_rate (double events, double timeframe)
 
double poisson_expected (double rate, double time)
 
double fact (double x)
 
double poisson_x_successes (double expected, double x)
 
double poisson_range_successes (double expected, double lower, double upper)
 
int main ()
 

Detailed Description

Poisson statistics

The Poisson distribution counts how many events occur over a set time interval.

Function Documentation

◆ fact()

double fact ( double  x)

Compute factorial of a given number

30  {
31  double x_fact = x;
32  for (int i = x - 1; i > 0; i--) {
33  x_fact *= i;
34  }
35 
36  if (x_fact <= 0) {
37  x_fact = 1;
38  }
39  return x_fact;
40 }

◆ main()

int main ( void  )

main function

65  {
66  double rate, expected;
67  rate = poisson_rate(3, 1);
68  std::cout << "Poisson rate : " << rate << std::endl;
69 
70  expected = poisson_expected(rate, 2);
71  std::cout << "Poisson expected : " << expected << std::endl;
72 
73  std::cout << "Poisson 0 successes : " << poisson_x_successes(expected, 0)
74  << std::endl;
75  std::cout << "Poisson 0-8 successes : "
76  << poisson_range_successes(expected, 0, 8) << std::endl;
77 
78  return 0;
79 }
Here is the call graph for this function:

◆ poisson_expected()

double poisson_expected ( double  rate,
double  time 
)

calculate the expected value over a time e.g rate of 2.5 over 10 mins = 2.5 x 10 = 25

25 { return rate * time; }

◆ poisson_range_successes()

double poisson_range_successes ( double  expected,
double  lower,
double  upper 
)

probability of a success in range for Poisson dist (inclusive, inclusive)

\[P = \sum_i p(\mu,i)\]

54  {
55  double probability = 0;
56  for (int i = lower; i <= upper; i++) {
57  probability += poisson_x_successes(expected, i);
58  }
59  return probability;
60 }
Here is the call graph for this function:

◆ poisson_rate()

double poisson_rate ( double  events,
double  timeframe 
)

poisson rate:
calculate the events per unit time
e.g 5 dollars every 2 mins = 5 / 2 = 2.5

17  {
18  return events / timeframe;
19 }

◆ poisson_x_successes()

double poisson_x_successes ( double  expected,
double  x 
)

Find the probability of x successes in a Poisson dist.

\[p(\mu,x) = \frac{\mu^x e^{-\mu}}{x!}\]

46  {
47  return (std::pow(expected, x) * std::exp(-expected)) / fact(x);
48 }
Here is the call graph for this function:
std::cout
poisson_range_successes
double poisson_range_successes(double expected, double lower, double upper)
Definition: poisson_dist.cpp:54
poisson_rate
double poisson_rate(double events, double timeframe)
Definition: poisson_dist.cpp:17
std::endl
T endl(T... args)
fact
double fact(double x)
Definition: poisson_dist.cpp:30
std::exp
T exp(T... args)
std::time
T time(T... args)
poisson_expected
double poisson_expected(double rate, double time)
Definition: poisson_dist.cpp:25
poisson_x_successes
double poisson_x_successes(double expected, double x)
Definition: poisson_dist.cpp:46
std::pow
T pow(T... args)