R中的非线性优化-非线性约束

时间:2019-09-06 10:07:04

标签: r r-optimization

我是R语言优化和R语言的新手, 尝试实施以下方程组-找出最大,最小和相交点以及相交点的最大值和最小值。该函数的特定形式是:

P = 1.8X+2.55Y+3.2Z

其中的约束是:

X + Y + Z = 1 
X, Y, Z =>0
1.8X = 2.55Y = 3.2Z

我正在使用nlcoptim尝试通过以下方式实现它: 库(NlcOptim)

  

目标功能

obj = function(x){
  return(1.8 * x[1] + 2.55 * x[2] + 3.2 * x[3])
}
  

约束功能

con = function(x){
  f = NULL
  f = rbind(f, x[1] + x[2] + x[3] - 1)
  f = rbind(f, x[1] >= 0)
  f = rbind(f, x[1] <= 1)
  f = rbind(f, x[2] >= 0)
  f = rbind(f, x[2] <= 1)
  f = rbind(f, x[3] >= 0)
  f = rbind(f, x[3] <= 1)
  return(list(ceq = NULL, c = f))
}
  

设置x的初始值

x0 = c(0, 0, 0)
  

使用solnl解决

solnl(x0, objfun = obj, confun = con)

我一直遇到错误。我在做什么错了?

0 个答案:

没有答案