The plain Monte Carlo algorithm samples points randomly from the integration region to estimate the integral and its error. Using this algorithm the estimate of the integral @math{E(f; N)} for @math{N} randomly distributed points @math{x_i} is given by,

where @math{V} is the volume of the integration region. The error on this estimate @math{\sigma(E;N)} is calculated from the estimated variance of the mean,

For large @math{N} this variance decreases asymptotically as @math{var(f)/N}, where @math{var(f)} is the true variance of the function over the integration region. The error estimate itself should decrease as @c{$\sigma(f)/\sqrt{N}$} @math{\sigma(f)/\sqrt{N}}. The familiar law of errors decreasing as @c{$1/\sqrt{N}$} @math{1/\sqrt{N}} applies -- to reduce the error by a factor of 10 requires a 100-fold increase in the number of sample points.

The functions described in this section are declared in the header file
``gsl_monte_plain.h'`.

__Function:__gsl_monte_plain_state ***gsl_monte_plain_alloc***(size_t*`dim`)-
This function allocates and initializes a workspace for Monte Carlo
integration in
`dim`dimensions.

__Function:__int**gsl_monte_plain_init***(gsl_monte_plain_state**`s`)- This function initializes a previously allocated integration state. This allows an existing workspace to be reused for different integrations.

__Function:__int**gsl_monte_plain_integrate***(gsl_monte_function **`f`, double *`xl`, double *`xu`, size_t`dim`, size_t`calls`, gsl_rng *`r`, gsl_monte_plain_state *`s`, double *`result`, double *`abserr`)-
This routines uses the plain Monte Carlo algorithm to integrate the
function
`f`over the`dim`-dimensional hypercubic region defined by the lower and upper limits in the arrays`xl`and`xu`, each of size`dim`. The integration uses a fixed number of function calls`calls`, and obtains random sampling points using the random number generator`r`. A previously allocated workspace`s`must be supplied. The result of the integration is returned in`result`, with an estimated absolute error`abserr`.

__Function:__void**gsl_monte_plain_free***(gsl_monte_plain_state**`s`),-
This function frees the memory associated with the integrator state
`s`.

Go to the first, previous, next, last section, table of contents.