Jim Lindsey
1999-Nov-09 08:37 UTC
[R] Re: numerical integration {better than integrate(.)} ?
> > {{I first wanted to send this to R-devel; > but then thought, maybe first hear of you all.. > and added a bit more > > Still could ask on R-devel later -- MM} > > - In R, there's currently the "integrate" package from Mike Meyer, ported to > R by Thomas Lumley which really relies on multi-dimensional integration > "adapt" and is not particularly efficient for integrating simple 1d functions. > It stops with error/warning many times when I try to use it. > Also, it does not allow indefinite integrals (eg. from 0 to infty) > > - MASS package has "area" which is there ``mainly for illustrative purposes'' > > - Jim Lindsey's non-CRAN "rmutil" package has `int()' which looks great, > judged from the help (int.Rd), allowing to choose between Romberg and > TOMS 614 methods, allowing for indefinite integrals and singularities at > the end point(s). > On the other hand, the C code seems somewhat complicated, and (for romberg.c), > quite a bit nested (romberg -> evalRfn -> ..; interp) and completely > without comments. > > [Yes: TOMS 614 has the copyright problem; but together with many more TOMS > routines in R...] > The (considerable!) drawback with int() is that you don't get a > precision estimate back, but maybe that would be easy.. > > - For nice functions, very fast and accurate Gaussian integration should be > "easy" to implement, and I remember having seen source for S, years ago, > but can't find it easily now. > The source would be so small that we could just include it in R's base > package (and this might be true for other integration utilities). > > I would propose to include in R a hopefully simple, > and `accurate in good cases' > integrate() function [ different name?] for numerical integration of 1d > functions. > > e.g. I want to be able to have things like > > integrate(function(x) dt(x,df=2), 0, Inf) > integrate(function(x) x*sqrt(x) dnorm(x), 0, 10, eps = 1e-10) > > work > [it *does* work with Jim's int() > ((when one uses character "infty" instead of Inf)),That was written before Inf was in R and is obviously easy to fix.> but in my experience, one needs a long time of parameter fiddling to make > it produce a proper result with current integrate()] > > Comments? > Ideas? > Jim, would you mind if e.g. I took your int() & romberg code and > changed it by adding comments, probably change the UI a bit (argument > names; default values,..)?Absolutely no problem. All of my code is wide open to the R community. Jim> > MM > > >-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._