Dear R gurus,
To start, let me confess to not being an experienced programmer, although I have
used R fairly
extensively in my work as a
graduate student in statistics.
I wish to find the root of a function of two variables that is defined by an
integral which must be
evaluated numerically.
So the problem I want to solve is of the form: Find k such that f(k)=0, where
f(y) = int_a^b
g(x,y) dx. Again, the integral
involved must be done numerically.
I'm told by a friend who knows programming, but not R, that what I need to
do is create something
like a "local environment"
within which I could create a placeholder for x. So I want to make something
like the following work.
f(var) <- function(var) {
cons <- var
g <- function(x,cons) {h(x,cons)}
ret <- function(cons) integrate(g(x,cons),a,b)$value
ret
}
I could then use (e.g.) a Newton Raphson algorithm to find the root of the
function"f".
Thanks,
Chris Rhoads
Northwestern University
On Tue, Feb 19, 2008 at 11:07 PM, Chris Rhoads <c-rhoads at northwestern.edu> wrote:> To start, let me confess to not being an experienced programmer, although I have used R fairly > extensively in my work as a > graduate student in statistics. > > I wish to find the root of a function of two variables that is defined by an integral which must be > evaluated numerically. > > So the problem I want to solve is of the form: Find k such that f(k)=0, where f(y) = int_a^b > g(x,y) dx. Again, the integral > involved must be done numerically. > > I'm told by a friend who knows programming, but not R, that what I need to do is create something > like a "local environment" > within which I could create a placeholder for x. So I want to make something like the following work. > > f(var) <- function(var) { > > cons <- var > > g <- function(x,cons) {h(x,cons)} > > ret <- function(cons) integrate(g(x,cons),a,b)$value > ret > } > > I could then use (e.g.) a Newton Raphson algorithm to find the root of the function"f".Can you Chris provide us an example with concrete functions? To us, it would be easier to think about a concrete example. Paul
Chris Rhoads wrote:> > > I wish to find the root of a function of two variables that is defined by > an integral which must be > evaluated numerically. > > So the problem I want to solve is of the form: Find k such that f(k)=0, > where f(y) = int_a^b > g(x,y) dx. Again, the integral > involved must be done numerically. > >g <- function(x,p) 2*(x-p) Find value of p such that integral_0^1 g(x,p)dx is zero f <- function(p) integrate(g,0,1,p)$value uniroot(f, c(0,1)) $root should be 0.5 which is what is expected here. Berend Hasselman -- View this message in context: http://www.nabble.com/numerical-integration-of-a-ftn-of-2-variables-tp15578652p15618830.html Sent from the R help mailing list archive at Nabble.com.