Are you trying to figure out how to use adaptive integration in general, or do you primarily need integrals of the beta PDF? If the latter, would a combination of gsl_cdf_beta_P and gsl_cdf_beta_Q do what you want? -- mj
On Wed, Dec 27, 2017 at 8:53 PM, Vasu Jaganath <[email protected]> wrote: > Hi group! > > I would like to know how to do adaptive integration of beta PDF > distribution function. (The PDF not the random number generator) > > I'm trying to follow this example (given in the official docs), > > #include <stdio.h>#include <math.h>#include > <gsl/gsl_integration.h>#include <gsl/gsl_randist.h> > double f (double x, void * params) { > double alpha = *(double *) params; > double f = log(alpha*x) / sqrt(x); > return f;} > int main (void){ > gsl_integration_workspace * w > = gsl_integration_workspace_alloc (1000); > > double result, error; > double expected = -4.0; > double alpha = 1.0; > > gsl_function F; > F.function = &f; > //F.function = &gsl_ran_gaussian_pdf; > //F.function = gsl_ran_beta_pdf > F.params = α > > gsl_integration_qags (&F, 0, 1, 0, 1e-7, 1000, > w, &result, &error); > > printf ("result = % .18f\n", result); > printf ("exact result = % .18f\n", expected); > printf ("estimated error = % .18f\n", error); > printf ("actual error = % .18f\n", result - expected); > printf ("intervals = %zu\n", w->size); > > gsl_integration_workspace_free (w); > > return 0; > > } > > I don't know how to use the inbuilt function and how to specify more than 1 > parameters (alpha and beta) to the function. I am very new to gsl, so > please bear with me. > > I tried to integrate gsl_ran_gaussian_pdf from 0 to 1 with sigma = 0.001, > but I wasn't able to do it. > > Any help or further direction to appropriate docs would be appreciated! > > Thanks, > Vasu >
