It looks like a bug in the CG method. The other methods in optim() all work fine. CG is documented to be a good choice in high dimensions; why did you choose it for a 1 dim problem?

Duncan Murdoch

On 12/03/2020 2:30 a.m., Skyler Saleebyan 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.


______________________________________________
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.

Reply via email to