[R] Help in Bissection algorithm

Rui Barradas ruipbarradas at sapo.pt
Thu Nov 29 21:18:25 CET 2012


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 at 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.




More information about the R-help mailing list