It is possible to work out this problem explicitly. Playing with a few different calls to optim shows that the method="L-BFGS-B" gives the correct answer. I don't have particular insight into why method="CG" is problematic.
On Thu, Mar 12, 2020 at 4:12 PM Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote: > The help file points out that CG is "fragile" ... and I would expect that > failing to define a gradient function will exacerbate that. > > I think you should use a different algorithm or specify a gradient > function. You might also consider working with the more recent optimr > package contributed by Dr Nash, author of the original optim function in R. > > On March 12, 2020 2:30:26 AM PDT, Skyler Saleebyan < > skylerbsaleeb...@gmail.com> wrote: > >I am trying to familiarize myself with optim() with a relatively simple > >maximization. > > > >Description: > >L and K are two terms which are constrained to add up to a total 100000 > >(with respective weights to each). To map this constraint I plugged K > >into > >the function (to make this as simple as possible.) > > > >Together these two feed into one nonlinear function which is the > >product of > >two monotonic (on the positive interval) functions. Then that numbers > >is > >returned in a function fed to optim, which should maximize the output > >by > >adjusting L. The whole code is: > > > >production1 <- function(L){ > > budget=100000 > > Lcost=12 > > Kcost=15 > > K=(budget-L*Lcost)/Kcost > > machines=0.05*L^(2/3)*K^(1/3) > > return(machines) > >} > > > ># production1(6000) #example of number with much higher output vs optim > >result > >S1=optim(1001,production1,method="CG",control=list(fnscale=-1)) > >S1 > > > >Output: > >$par > >[1] 1006.536 > > > >$value > >[1] 90.54671 > > > >$counts > >function gradient > > 201 101 > > > >$convergence > >[1] 1 > > > >$message > >NULL > > > > > >For some reason this never explores the problem space and just spits > >out > >some answer close to the initial condition. What am I doing wrong? > > > >Thanks, > >Skyler S. > > > > [[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. > > -- > Sent from my phone. Please excuse my brevity. > > ______________________________________________ > 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. > [[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.