The problem is that optimize() has an optional argument "tol" which is getting confused with the "t" argument in your function, since R tries to do partial matching on function arguments. If you rename the t argument to t1 (or anything except "to" or "tol") it will work (I think): yield <- function(F,N0,M,t1,days,wt,st,st1) { sum(wt*N0*exp(-(t1-1)*M-F*st1)*(st*F/(M+st*F))*(1-exp(-M-st*F))) } optimize(yield,interval=c(0,3),max=T,N0=15.4185,M=0.3,t1=t, days=days,wt=wt,st=st,st1=st1) On Wed, 17 Oct 2001, Han Lai wrote:> Hi, > > I am trying to write a r-code that maximizes fish yield, which is > summing over a total of 11 months (t=c(1:11)) for one cohort. My code > looks like this: > > t <- c(1:11) > days <- 30*t-15 > yt <- 6.6*exp(log(12.3/6.6)*(days-126.3)/(189.5-126.3)) > wt <- exp(log(0.250206)+2.14418*log(yt)) > v0 <- 4; v1 <- 14 > st <- (yt-v0)/(v1-v0); st[yt<=v0] <- 0; st[yt>=v1] <-1; > st1 <- cumsum(st) > yield <- function(F,N0,M,t,days,wt,st,st1) { > sum(wt*N0*exp(-(t-1)*M-F*st1)*(st*F/(M+st*F))*(1-exp(-M-st*F))) } > > optimize(yield,interval=c(0,3),max=T,N0=15.4185,M=0.3,t=t,days=days,wt=wt,st=st,st1=st1) > > Everything is o.k. untile the last one line, which gives the following > error message. > > Error in sum(wt * N0 * exp(-(t - 1) * M - F * st1) * (st * F/(M + st * > : > Argument "t" is missing, with no default > > Thanks in advance for your helps! > > Cheers! > Han > Han-Lin.Lai at noaa.gov > > > -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- > r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html > Send "info", "help", or "[un]subscribe" > (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch > _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._ >-- 318 Carr Hall bolker at zoo.ufl.edu Zoology Department, University of Florida http://www.zoo.ufl.edu/bolker Box 118525 (ph) 352-392-5697 Gainesville, FL 32611-8525 (fax) 352-392-3704 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Hi, I am trying to write a r-code that maximizes fish yield, which is summing over a total of 11 months (t=c(1:11)) for one cohort. My code looks like this: t <- c(1:11) days <- 30*t-15 yt <- 6.6*exp(log(12.3/6.6)*(days-126.3)/(189.5-126.3)) wt <- exp(log(0.250206)+2.14418*log(yt)) v0 <- 4; v1 <- 14 st <- (yt-v0)/(v1-v0); st[yt<=v0] <- 0; st[yt>=v1] <-1; st1 <- cumsum(st) yield <- function(F,N0,M,t,days,wt,st,st1) { sum(wt*N0*exp(-(t-1)*M-F*st1)*(st*F/(M+st*F))*(1-exp(-M-st*F))) } optimize(yield,interval=c(0,3),max=T,N0=15.4185,M=0.3,t=t,days=days,wt=wt,st=st,st1=st1) Everything is o.k. untile the last one line, which gives the following error message. Error in sum(wt * N0 * exp(-(t - 1) * M - F * st1) * (st * F/(M + st * : Argument "t" is missing, with no default Thanks in advance for your helps! Cheers! Han Han-Lin.Lai at noaa.gov -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Sorry about my missing statement. My r-code is to find F-value that maximizes fish yield. N0=15.4185,M=0.3,t=t,days=days,wt=wt,st=st,st1=st1 in optimize statement is constants or constant arrays. Han Lai wrote:> Hi, > > I am trying to write a r-code that maximizes fish yield, which is > summing over a total of 11 months (t=c(1:11)) for one cohort. My code > looks like this: > > t <- c(1:11) > days <- 30*t-15 > yt <- 6.6*exp(log(12.3/6.6)*(days-126.3)/(189.5-126.3)) > wt <- exp(log(0.250206)+2.14418*log(yt)) > v0 <- 4; v1 <- 14 > st <- (yt-v0)/(v1-v0); st[yt<=v0] <- 0; st[yt>=v1] <-1; > st1 <- cumsum(st) > yield <- function(F,N0,M,t,days,wt,st,st1) { > sum(wt*N0*exp(-(t-1)*M-F*st1)*(st*F/(M+st*F))*(1-exp(-M-st*F))) } > > optimize(yield,interval=c(0,3),max=T,N0=15.4185,M=0.3,t=t,days=days,wt=wt,st=st,st1=st1) > > Everything is o.k. untile the last one line, which gives the following > error message. > > Error in sum(wt * N0 * exp(-(t - 1) * M - F * st1) * (st * F/(M + st * > : > Argument "t" is missing, with no default > > Thanks in advance for your helps! > > Cheers! > Han > Han-Lin.Lai at noaa.gov-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._