| 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) |
16.8 QAWS adaptive integration for singular functions
The QAWS algorithm is designed for integrands with algebraic-logarithmic singularities at the end-points of an integration region. In order to work efficiently the algorithm requires a precomputed table of Chebyshev moments.
- Function: gsl_integration_qaws_table * gsl_integration_qaws_table_alloc (double alpha, double beta, int mu, int nu)
- This function allocates space for a
gsl_integration_qaws_tablestruct describing a singular weight function W(x) with the parameters (\alpha, \beta, \mu, \nu),W(x) = (x-a)^alpha (b-x)^beta log^mu (x-a) log^nu (b-x)
where \alpha > -1, \beta > -1, and \mu = 0, 1, \nu = 0, 1. The weight function can take four different forms depending on the values of \mu and \nu,
W(x) = (x-a)^alpha (b-x)^beta (mu = 0, nu = 0) W(x) = (x-a)^alpha (b-x)^beta log(x-a) (mu = 1, nu = 0) W(x) = (x-a)^alpha (b-x)^beta log(b-x) (mu = 0, nu = 1) W(x) = (x-a)^alpha (b-x)^beta log(x-a) log(b-x) (mu = 1, nu = 1)
The singular points (a,b) do not have to be specified until the integral is computed, where they are the endpoints of the integration range.
The function returns a pointer to the newly allocated table
gsl_integration_qaws_tableif no errors were detected, and 0 in the case of error.
- Function: int gsl_integration_qaws_table_set (gsl_integration_qaws_table * t, double alpha, double beta, int mu, int nu)
- This function modifies the parameters (\alpha, \beta, \mu, \nu) of
an existing
gsl_integration_qaws_tablestruct t.
- Function: void gsl_integration_qaws_table_free (gsl_integration_qaws_table * t)
- This function frees all the memory associated with the
gsl_integration_qaws_tablestruct t.
- Function: int gsl_integration_qaws (gsl_function * f, const double a, const double b, gsl_integration_qaws_table * t, const double epsabs, const double epsrel, const size_t limit, gsl_integration_workspace * workspace, double * result, double * abserr)
- This function computes the integral of the function f(x) over the
interval (a,b) with the singular weight function
(x-a)^\alpha (b-x)^\beta \log^\mu (x-a) \log^\nu (b-x). The parameters
of the weight function (\alpha, \beta, \mu, \nu) are taken from the
table t. The integral is,
I = \int_a^b dx f(x) (x-a)^alpha (b-x)^beta log^mu (x-a) log^nu (b-x).
The adaptive bisection algorithm of QAG is used. When a subinterval contains one of the endpoints then a special 25-point modified Clenshaw-Curtis rule is used to control the singularities. For subintervals which do not include the endpoints an ordinary 15-point Gauss-Kronrod integration rule is used.
| ISBN 0954612078 | GNU Scientific Library Reference Manual - Third Edition (v1.12) | See the print edition |