[R] Double Integration

Hans W Borchers hwborchers at googlemail.com
Thu Jul 1 20:46:29 CEST 2010


Sarah Sanchez <sarah_sanchez09 <at> yahoo.com> writes:
> 
> Dear R helpers
> 
> I am working on the Bi-variate Normal distribution probabilities.
> I need to double integrate the following function
> (actually simplified form of bivariate normal distribution)
> 
> f(x, y) = exp [ - 0.549451 * (x^2 + y^2 - 0.6 * x * y) ]
> 
> where 2.696 < x < 3.54 and -1.51 < y < 1.98
> 
> I need to solve something like
> 
> INTEGRATE (2.696 to 3.54) dx INTEGRATE [(-1.51 to 1.98)] f(x, y) dy
> 
> I have referred to stats::integrate but it deals with only one variable. 
> 
> This example appears in Internal Credit Risk Model by Michael Ong
> (page no. 160).

There has been the same request last month, the answer is still valid:

    library(cubature)
    fun <- function(x) exp(-0.549451*(x[1]^2+x[2]^2-0.6*x[1]*x[2]))
    adaptIntegrate(fun, c(-1.51,1.98), c(2.696,3.54), tol=1e-8)

    # $integral
    # [1] 0.1376102
   # $error
    # [1] 1.372980e-09
    # ...

Hans Werner

>
> Kindly guide.
> 
> Regards
> 
> Sarah
>



More information about the R-help mailing list