This could be described as a bug, perhaps. Or it could be described as an indication that numerical optimization is inevitably tricky. Notice that if you narrow down your search interval from [0,5] to [0,0.5] you get the right answer:
> optimize(f, c(0, 0.5), maximum= TRUE,tol=1e-10) $maximum [1] 4.192436e-11 $objective [1] 1 I guess there's a problem with finding a gradient that is effectively (numerically) zero when "k" is equal to 5. cheers, Rolf Turner On 10/29/13 06:00, Shantanu MULLICK wrote:
Hello Everyone, I want to perform a 1-D optimization by using the optimize() function. I want to find the maximum value of a "logistic" function. The optimize() function gives the wrong result. My code: f= function (k) { T_s = 20 result = (2- 2/(1+ exp(-2*T_s*k))) return(result) } optimize(f, c(0, 5), tol = 0.0000000000001, maximum= TRUE) The maximum value for the function happens at k=0, and the maximum value is 1. Yet the optimise function, says that the maximum value happens at k= 4.9995, and the maximum value is 0.
______________________________________________ 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.