Hi all, I am writing a simple function to implement regularfalsi (secant) method.
################################################### regulafalsi=function(f,x0,x1){ x=c() x[1]=x1 i=1 while ( f(x[i])!=0 ) { i=i+1 if (i==2) { x[2]=x[1]-f(x[1])*(x[1]-x0)/(f(x[1])-f(x0)) } else { x[i]=x[i-1]-f(x[i-1])*(x[i-1]-x[i-2])/(f(x[i-1])-f(x[i-2])) } } x[i] } ################################################### These work fine, regulafalsi(function(x) x^(1/2)+3*log(x)-5,1,10) regulafalsi(function(x) x^(1/2)+3*log(x)-5,10,1) For all x>0, the function is strictly increasing. Then regulafalsi(function(x) x^(1/2)+3*log(x)-5,1,100) Error in while (f(x[i]) != 0) { : missing value where TRUE/FALSE needed In addition: Warning message: In log(x) : NaNs produced I dont know what happened there, is there a way to find the value for f(x[i]) that R can't determine TRUE/FALSE? Thanks! casper -- View this message in context: http://r.789695.n4.nabble.com/how-to-see-what-s-wrong-with-a-self-written-function-tp3159528p3159528.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.