distrExIntegrate

0th

Percentile

Integration of One-Dimensional Functions

Numerical integration via integrate. In case integrate fails a Gauss-Legendre quadrature is performed.

Keywords
utilities, math
Usage
distrExIntegrate(f, lower, upper, subdivisions = 100, 
                 rel.tol = .Machine$double.eps^0.25, 
                 abs.tol = rel.tol, stop.on.error = TRUE, 
                 distr, order, ...)
Arguments
f
an R function taking a numeric first argument and returning a numeric vector of the same length. Returning a non-finite element will generate an error.
lower
lower limit of integration. Can be -Inf.
upper
upper limit of integration. Can be Inf.
subdivisions
the maximum number of subintervals.
rel.tol
relative accuracy requested.
abs.tol
absolute accuracy requested.
stop.on.error
logical. If TRUE (the default) an error stops the function. If false some errors will give a result with a warning in the message component.
distr
object of class UnivariateDistribution.
order
order of Gau´┐Ż-Legendre quadrature.
...
additional arguments to be passed to f. Remember to use argument names not matching those of integrate and GLIntegrate!
Details

This function calls integrate. In case integrate returns an error a Gauss-Legendre integration is performed using GLIntegrate. If lower or (and) upper are infinite the GLIntegrateTruncQuantile, respectively the 1-GLIntegrateTruncQuantile quantile of distr is used instead.

Value

  • Estimate of the integral.

concept

integration

References

Based on QUADPACK routines dqags and dqagi by R. Piessens and E. deDoncker-Kapenga, available from Netlib. R. Piessens, E. deDoncker-Kapenga, C. Uberhuber, D. Kahaner (1983) Quadpack: a Subroutine Package for Automatic Integration. Springer Verlag. W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery (1992) Numerical Recipies in C. The Art of Scientific Computing. Second Edition. Cambridge University Press.

See Also

integrate, GLIntegrate, distrExOptions

Aliases
  • distrExIntegrate
Examples
fkt <- function(x){x*dchisq(x+1, df = 1)}
integrate(fkt, lower = -1, upper = 3)
GLIntegrate(fkt, lower = -1, upper = 3)
try(integrate(fkt, lower = -1, upper = 5))
distrExIntegrate(fkt, lower = -1, upper = 5)
Documentation reproduced from package distrEx, version 0.4-2, License: GPL (version 2 or later)

Community examples

Looks like there are no examples yet.