[R] integrate a function in R

(Ted Harding) Ted.Harding at nessie.mcc.ac.uk
Thu Oct 28 09:45:09 CEST 2004

On 27-Oct-04 yyan liu wrote:
> Hi:
>   I want to integrate the following function with
> respect to "z", "u" is another argument in the
> function. My program is a loop and in each loop the
> argument "u" will be given a specified numeric values.
> But how can I use the "integrate" function with "u" in
> R?
>   The function is:
> zfz<-function(z,u)
> { 
>   return(z*dnorm(z,u,1) )     
> }
> And in each loop, the integration interval is [0,u+3].
> I can not just use integrate(zfz,0,u+3) because "u"
> can not be specified. 
> Thank you!

If you are only interested in this specific function, then there
is an analytical solution and you do not need numerical integration.
Namely (if I have understood your statement correctly) let (0,Z) be
the limits of integration (in your case Z = u+3); then the integral

  dnorm(u,0,1) - dnorm(Z-u,0,1) + u*pnorm(Z-u,0,1) - pnorm(-u,0,1)

which, in your case, is

  dnorm(u) - dnorm(3) + u*pnorm(3) - pnorm(-u)

(using the default values mu=0 and s=1 for dnorm and pnorm).

Hoping this helps,

E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861  [NB: New number!]
Date: 28-Oct-04                                       Time: 08:45:09
------------------------------ XFMail ------------------------------

More information about the R-help mailing list