[R] how to see what's wrong with a self written function?

casperyc casperyc at hotmail.co.uk
Tue Dec 21 20:39:31 CET 2010


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.



More information about the R-help mailing list