GNU Scientific Library Reference Manual - Third Edition (v1.12) by M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, P. Alken, M. Booth, F. Rossi Paperback (6"x9"), 592 pages, 60 figures ISBN 0954612078 RRP £24.95 ($39.95) |
21.21 Resampling from 2D histograms
As in the one-dimensional case, a two-dimensional histogram made by counting events can be regarded as a measurement of a probability distribution. Allowing for statistical error, the height of each bin represents the probability of an event where (x,y) falls in the range of that bin. For a two-dimensional histogram the probability distribution takes the form p(x,y) dx dy where,
p(x,y) = n_{ij}/ (N A_{ij})
In this equation n_{ij} is the number of events in the bin which contains (x,y), A_{ij} is the area of the bin and N is the total number of events. The distribution of events within each bin is assumed to be uniform.
- Data Type: gsl_histogram2d_pdf
size_t nx, ny
- This is the number of histogram bins used to approximate the probability distribution function in the x and y directions.
double * xrange
- The ranges of the bins in the x-direction are stored in an array of nx + 1 elements pointed to by xrange.
double * yrange
- The ranges of the bins in the y-direction are stored in an array of ny + 1 pointed to by yrange.
double * sum
- The cumulative probability for the bins is stored in an array of nx*ny elements pointed to by sum.
The following functions allow you to create a gsl_histogram2d_pdf
struct which represents a two dimensional probability distribution and
generate random samples from it.
- Function: gsl_histogram2d_pdf * gsl_histogram2d_pdf_alloc (size_t nx, size_t ny)
- This function allocates memory for a two-dimensional probability
distribution of size nx-by-ny and returns a pointer to a
newly initialized
gsl_histogram2d_pdf
struct. If insufficient memory is available a null pointer is returned and the error handler is invoked with an error code ofGSL_ENOMEM
.
- Function: int gsl_histogram2d_pdf_init (gsl_histogram2d_pdf * p, const gsl_histogram2d * h)
- This function initializes the two-dimensional probability distribution
calculated p from the histogram h. If any of the bins of
h are negative then the error handler is invoked with an error
code of
GSL_EDOM
because a probability distribution cannot contain negative values.
- Function: void gsl_histogram2d_pdf_free (gsl_histogram2d_pdf * p)
- This function frees the two-dimensional probability distribution function p and all of the memory associated with it.
- Function: int gsl_histogram2d_pdf_sample (const gsl_histogram2d_pdf * p, double r1, double r2, double * x, double * y)
- This function uses two uniform random numbers between zero and one, r1 and r2, to compute a single random sample from the two-dimensional probability distribution p.
ISBN 0954612078 | GNU Scientific Library Reference Manual - Third Edition (v1.12) | See the print edition |