[R] Function: integrate

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Aug 11 10:06:10 CEST 2004


Your function is not even differentiable.  Simple integration rules will 
have error iff they span a point of non-differentiability so there is no 
way an automated routine will get a sensible error estimate for choosing 
adaptation.

You can integrate this function exactly, so why use integrate?  If it is 
a sample of a smooth function, interpolate by say cubic splines rather 
than piecewise linearly (?splinefun).

BTW, did you consult the reference on the help page?

On Wed, 11 Aug 2004, Tine Buch-Larsen wrote:

> I have a question regarding the function "integrate".
> Why does integrate sometimes returns "extremely bad integrand behaviour", 
> when I integrate a well-define function between 0 and ,1 and how can I 
> solve the problem.
> The following is an example of the problem:
> x = seq(0, 1, length=50) 
> y = c(0.6697534, 0.7868631, 0.8793606, 0.9404326, 0.9933826, 1.0441545, 
> 1.0861214, 1.1076160, 1.0943228, 1.0620462, 1.0334792, 1.0176313, 
> 1.0189657, 1.0286591, 1.0635902, 1.0815423, 1.0952207, 1.0985036, 
> 1.0782912, 1.0411431, 1.0056234, 0.9641239, 0.9360296, 0.9212780, 
> 0.9057849, 0.8850640, 0.8836523, 0.8780735, 0.8793521, 0.8651096, 
> 0.8526203, 0.8280131, 0.8029167, 0.7886007, 0.7844318, 0.7838392, 
> 0.7996804, 0.8162264, 0.8245920, 0.8315790, 0.8465705, 0.8623909, 
> 0.8948042, 0.9145519, 0.9141968, 0.9188292, 0.9278436, 0.9264173, 
> 0.9381125, 0.9527778)
> fct = approxfun(x, y, method="linear", rule=2)
> integrate(fct, 0, 1)$value
> 
> My R version is 1.7.1

Oh please, that's in need of an update.


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list