From: Huntsinger, Reid <reid_huntsinger_at_merck.com>

Date: Fri 29 Jul 2005 - 07:10:43 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!

http://www.R-project.org/posting-guide.html

Date: Fri 29 Jul 2005 - 07:10:43 EST

Integrate needs a vectorized function. For your example,

> integrate(function(x) sapply(x,g),lower=0,upper=5)

187.4994 with absolute error < 2.1e-12

Reid Huntsinger

-----Original Message-----

From: Gregory Gentlemen [mailto:gregory_gentlemen@yahoo.ca]
Sent: Thursday, July 28, 2005 4:37 PM

To: Huntsinger, Reid; r-help@stat.math.ethz.ch
Subject: RE: [R] using integrate with optimize nested in the integration

Thanks for the prompt reply.

Your right, that was a weak example.

Consider this one though:

f <- function(n,x) (x-2.5)^2*n

g <- function(y) optimize(f,c(0,15), maximum=TRUE,x=y)$maximum*y

then if you try:

integrate(g,lower=0,upper=5)

it produces:

Error in optimize(f, c(0, 15), maximum = TRUE, x = y) :

invalid function value in 'optimize'

Any ideas?

My problem is a similar more complex function in which optimizaiton depends
on the value of the integrator.

"Huntsinger, Reid" <reid_huntsinger@merck.com> wrote:

In your example, f is a function, but

optimize(f,c(0,15),maximum=TRUE)$maximum is just a number (the point at
which f reaches its maximum value). I'm not sure what you want, but if you
had say

f <- function(x,y) x^3 + yx + 1

and defined

g <- function(y) optimize(f,c(0,5),maximum=TRUE,y)$maximum

then g(t) is the x-value at which the function f(x,t) (over x in (0,5)) reaches its maximum for this fixed t. That could then be integrated.

Reid Huntsinger

-----Original Message-----

From: r-help-bounces@stat.math.ethz.ch

[mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Gregory Gentlemen
Sent: Thursday, July 28, 2005 3:58 PM

To: r-help@stat.math.ethz.ch

Subject: [R] using integrate with optimize nested in the integration

Hi guys

im having a problem getting R to numerically integrate for some function,
say f(bhat)*optimize(G(bhat)), over bhat. Where id like to integrate this
over some finite range, so that here as we integrate over bhat optimize
would return a different optimum.

For instance consider this simple example for which I cannot get R to return the desired result:

f <- function(bhat) exp(bhat)

g <- function(bhat) optimize(f,c(0,15),maximum=TRUE)$maximum*bhat
integrate(g,lower=0,upper=5)

which returns:

187.499393759 with absolute error < 2.1e-12

However this is an approximation of : 15*(5^2/2 - 0)=187.5, not what I intended on getting. Its not identifying that f is a function of bhat ... any advice or ways I can get integrate to not treat this as a constant?

Any help is appreciated.

Gregoy Gentlemen

[[alternative HTML version deleted]]

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!

http://www.R-project.org/posting-guide.html

-- Notice: This e-mail message, together with any attachments, ...{{dropped}} ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.htmlReceived on Fri Jul 29 07:15:22 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:34:07 EST
*