I'm looking for a solution for a double integral that is faster than
integrate(function(y) {
sapply(y, function(y) {
integrate(function(x) myfun(x,y), llim, ulim)$value
})
}, llim, ulim)
with eg
myfun <- function(x,y) cos(x+y)
llim <- -0.5
ulim <- 0.5
I found an old paper that referred to a FORTRAN program called quad2d
, but I couldn't find anything else but some help pages for matlab for the rest. So I'm looking for a C or FORTRAN library that can do double integrals quick (i.e. without the sapply loop), and that can be called from R. All ideas are very much appreciated, as long as they're all GPL compatible.
If the solution involves calling other functions from the libraries that are already shipped with R, I'd love to hear from them as well.
As we mentioned before, when we are using rectangular coordinates, the double integral over a region R R denoted by ∬ R f ( x , y ) d A ∬ R f ( x , y ) d A can be written as ∬ R f ( x , y ) d x d y ∬ R f ( x , y ) d x d y or ∬ R f ( x , y ) d y d x .
The cubature package does 2D (and N-D) integration using an adaptive algorithm. It should outperform simpler approaches for most integrands.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With