[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