[R] bivariate vector numerical integration with infinite range

Hans W Borchers hwborchers at googlemail.com
Tue Sep 21 22:38:55 CEST 2010


baptiste auguie <baptiste.auguie <at> googlemail.com> writes:

> 
> Thanks. I am having trouble getting adaptIntegrate to work with a
> multivalued integrand though, and cannot find a working example.
> Anyone had better luck with it?

The function to be integrated needs a vector as input:

    f <- function(x) {
        res <- 1 / (sqrt(x[1])*(1+x[1]))
        c(res, res/2, 2*res)
    }

    adaptIntegrate(f, lowerLimit=c(0.1, 0), upperLimit=c(10, 1), fDim = 3)
    $integral
    [1] 1.9164832 0.9582416 3.8329665

    $error
    [1] 1.265252e-05 6.326261e-06 2.530504e-05

    $functionEvaluations
    [1] 323

   $returnCode
   [1] 0

Hans Werner

> library(cubature)
> >
> > f <- function(x, y) {
> +   res <- 1 / (sqrt(x)*(1+x))
> +   c(res, res/2, 2*res)
> + }
> >
> > adaptIntegrate(f, lowerLimit=c(0.1, 0), upperLimit=c(10, 1), fDim = 3)
> [1] "adaptIntegrate: Error in evaluation function f(x) for x="
>            res
> [1,] 0.07355275 0.03677638 0.1471055
> [2,] 0.94280904 0.47140452 1.8856181
> Error in adaptIntegrate(f, lowerLimit = c(0.1, 0), upperLimit = c(10,  :
>  adaptIntegrate: Result f(x) is not numeric or has wrong dimension
> 
> Best,
> 
> baptiste
>



More information about the R-help mailing list