Now that is a more useful reply than "Why do you assume there is one?". Thanks 
a lot Ravi!



--- On Fri, 9/17/10, Ravi Varadhan <rvarad...@jhmi.edu> wrote:

From: Ravi Varadhan <rvarad...@jhmi.edu>
Subject: RE: [R] Is there a bisection method in R?
To: "'Peter Dalgaard'" <pda...@gmail.com>, "'Gregory Gentlemen'" 
<gregory_gentle...@yahoo.ca>
Cc: r-help@r-project.org
Received: Friday, September 17, 2010, 5:44 PM

Here is something simple (does not have any checks for bad input), yet
should be adequate:

bisect <- function(fn, lower, upper, tol=1.e-07, ...) {
f.lo <- fn(lower, ...) 
f.hi <- fn(upper, ...) 
feval <- 2

if (f.lo * f.hi > 0) stop("Root is not bracketed in the specified interval
\n")
chg <- upper - lower

while (abs(chg) > tol) {
    x.new <- (lower + upper) / 2
    f.new <- fn(x.new, ...)
    if (abs(f.new) <= tol) break
    if (f.lo * f.new < 0) upper <- x.new 
    if (f.hi * f.new < 0) lower <- x.new 
    chg <- upper - lower
    feval <- feval + 1
}
list(x = x.new, value = f.new, fevals=feval)
}

# An example
fn1 <- function(x, a) {
exp(-x) - a*x 
}

bisect(fn1, 0, 2, a=1)
 
bisect(fn1, 0, 2, a=2)


Ravi.

-----Original Message-----
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On
Behalf Of Peter Dalgaard
Sent: Friday, September 17, 2010 4:16 PM
To: Gregory Gentlemen
Cc: r-help@r-project.org
Subject: Re: [R] Is there a bisection method in R?

On 09/17/2010 09:28 PM, Gregory Gentlemen wrote:
> If uniroot is not a bisection method, then what function in R does use
bisection?
> 

Why do you assume that there is one? uniroot contains a better algorithm
for finding bracketed roots.

It shouldn't be too hard to roll your own if you need one for
pedagogical purposes.

-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Phone: (+45)38153501
Email: pd....@cbs.dk  Priv: pda...@gmail.com

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to