Используя язык R, я пытаюсь оптимизировать двухпараметрическую функцию f (x, y) так, чтобы x, y были неотрицательными, а y - целым числом. Однако я не получаю простого ответа, который можно было бы получить на бумаге.
Определение
f = function(param){
x=param[1] ; y=round(param[2])
temp = (x-1.3)^2+(y-1.7)^2
return(temp)
}
Ясно, что ответом является x = 1,3 и y = 2, но, учитывая настройку, любое значение y в (1.5,2.49) приемлемо как раунд (y) = 2. Вот что я получаю из функции constrOptim:
constrOptim(c(1,4),f,ui=rbind(c(1,0),c(0,1)),ci=c(0,0) , method="Nelder-Mead")
$par
[1] 1.299810 4.016033
$value
[1] 5.29
$counts
function gradient
43 NA
$convergence
[1] 0
$message
NULL
$outer.iterations
[1] 2
$barrier.value
[1] -6.084598e-05