I got that last point wrong as well. (Each iteration is using five evaluations).
Ignore all my comments on this subject. On 3/14/20, Abby Spurdle <spurdl...@gmail.com> wrote: >> It is correctly signalling that it hasn't converged (look at >> optim.sol$convergence, which "indicates that the iteration limit maxit >> had been reached".) But CG should be taking bigger steps. On a 1D >> quadratic objective function with no errors in the derivatives, it >> should take one step to convergence. Here we're not quadratic (though >> it's pretty close), and we don't have exact derivatives (your ripples), >> so the fact that it is sticking to one step size is a sign that it is >> not working. If those ripples are big enough to matter (and I'm not >> convinced of that), it should take highly variable steps. > > Hi Duncan, > > I need to apologize. > The problem has nothing to do with little ripples. > (My bad...) > > I tried approximating the function with a cubic Hermite spline. > (Essentially smoothing the function). > > However, the optim function still returns the wrong result. > Which surprised me... > > Then I tried changing the max number of iterations, and found > something quite interesting: > --------- > production.wr <- function(L){ > cat (L, "\n") > budget=100000 > Lcost=12 > Kcost=15 > K=(budget-L*Lcost)/Kcost > machines=0.05*L^(2/3)*K^(1/3) > return(machines) > } > > S1=optim(1001,production.wr,method="CG",control=list(fnscale=-1, maxit=1)) > S1=optim(1001,production.wr,method="CG",control=list(fnscale=-1, maxit=2)) > S1=optim(1001,production.wr,method="CG",control=list(fnscale=-1, maxit=3)) > S1=optim(1001,production.wr,method="CG",control=list(fnscale=-1, maxit=4)) > --------- > > The first iteration calls the function (3 + 2) times. > Subsequent iterations call the function (2 + 2) times. > In the subset-of-3, the step size is exactly 0.001. > And in subsequent leading (but not trailing) subsets-of-2, the step > size is exactly 0.002. > > I was wondering (hypothetically) if the first iteration is > approximating the second derivative, and subsequent iterations are > not...??? > ______________________________________________ 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.