Dear friends and helpers - in the script below, uniroot is called with a function CHB that calls a function, Charge. On its own, CHB apparently does what is expected, but from within uniroot, problems appear. An error is thrown
Error in f(lower, ...) : could not find function "f" So CHB is not seen or understood from within uniroot? I'm on windows 10, 64 bit R version 3.5.1 (2018-07-02) All best wishes Troels kw <- 1e-14 TOT <- 1 Pk1 <- 10^-2.16 Pk2 <- 10^-7.21 Pk3 <- 10^-12.32 K <- c(Pk1,Pk2,Pk3) f <- c(1,1,1) H <- 10^-7.4 Charge <- function(TOT,f,K,H) { num <- c() num[1] <- K[1]/(f[1]^2*H) for (i in 2:length(K)) num[i] <- i*prod(K[1:i])/(f[1]^i*f[i]*H^i) num <- sum(num) denum <- c() denum[1] <- 1+ K[1]/(f[1]^2*H) for (i in 2:length(K)) denum[i] <- prod(K[1:i])/(f[1]^i*f[i]*H^i) denum <- sum(denum) num/denum } Na <- 0.140 Cl <- 0.1 CHB <- function(Na,Cl,H,K,f,TOT) {Na-Cl+H-kw/(f[1]^2*H)-Charge(TOT,f,K,H)} H <- uniroot(CHB,interval=c(1e-19,5),tol=.Machine$double.eps,maxiter=100000, Na=Na,Cl=Cl,K=K,TOT=TOT,f=f)$root #Error in f(lower, ...) : could not find function "f" CHB(Na,Cl,10^-7.4,K,f,TOT) # -1.567668 OK right! [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.