是否存在R函数来解决“找到两个和,它们的总和为x并且乘积为最大值”的问题?

时间:2020-10-08 02:16:19

标签: r optimization

我想知道是否存在像lpSolve这样的库来解决此类问题,我不知道该库是否允许在约束中包含两个变量的乘积,或者我如何指定“乘积是一个最大”。

1 个答案:

答案 0 :(得分:2)

在可行区域上定义一个投影使我们可以使用无约束优化来优化这一点:

tot <- 10
proj <- function(x) tot * x / sum(x)
res <- optim(1:2, function(x) -prod(proj(x)))

res$convergence
## [1] 0

-res$value
## [1] 25

proj(res$par)
## [1] 4.999799 5.000201