Hello,

Actually, it would throw an error, you forgot to assign 'i'.
And in the end your function didn't have a return value. I've edited and simplified it a bit.
(And what to do if abs(a - b) == e ? The second condition was deleted.)

raiz <- function(f,a,b,e){
    i <- 0
    repeat{
        if(i > 50) break
        m <- (a + b)/2
        if(abs(a-b) < e) break
        af <- f(a)
        if(af*f(m) > 0) a <- m
        if(af*f(m) < 0) b <- m
        i=i+1
    }
    #raiz1 <- m # not needed
    m
}

f <- function(x) x^2 - 2
raiz(f, 0, 2, 1e-5)
[1] 1.414211


Hope this helps,

Rui Barradas

Em 29-11-2012 15:18, finehko escreveu:
I'm trying to make a function witch recieves a function "f", "a" and "b", and
the error "e". When I run the algorithm without labeling it a function and
typing the values it works, but when I just try to save it in a function It
doesn't ' bug but don't do anything. Here's the code, anyone know whats
happening?
raiz=function(f,a,b,e){
   repeat{
     if(i>50){break}
     if(abs(a-b)<e){m=(a+b)/2
                   raiz1=m}
     if(abs(a-b)>e){
           m=(a+b)/2
           af=f(a)
            if((af*f(m))>0){a=m}
            if((af*f(m))<0){b=m}}
         i=i+1}}



--
View this message in context: 
http://r.789695.n4.nabble.com/Help-in-Bissection-algorithm-tp4651295.html
Sent from the R help mailing list archive at Nabble.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.

______________________________________________
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