使用语言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,但是给定设置,(1.5,2.49)中的y值都可以作为round(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