在constrOptim中设置约束

在constrOptim中设置约束,r,R,在constrOptim函数中是否有一种简单的方法来设置以下约束的θ、ui、ci c1<x1<=c2 x1+1<x2<=c2+1 x2+1<x3<=c2+2 x3+1<x4<=c2+3 c1只需以所需的形式重写约束,ui%*%theta>=ci # Initial formulation of the constraints c1 <= x1 x1 <= c2 x1+1 <= x2 x2 &l

在constrOptim函数中是否有一种简单的方法来设置以下约束的θ、ui、ci

c1<x1<=c2
x1+1<x2<=c2+1
x2+1<x3<=c2+2
x3+1<x4<=c2+3

c1只需以所需的形式重写约束,
ui%*%theta>=ci

# Initial formulation of the constraints
c1   <= x1
        x1 <= c2
x1+1 <= x2
        x2 <= c2+1
x2+1 <= x3
        x3 <= c2+2
x3+1 <= x4
        x4 <= c2+3

# Rewrite them
  x1                >= c1
- x1                >= -c2
- x1 + x2           >= 1
     - x2           >= -c2 - 1
     - x2 + x3      >= 1
          - x3      >= -c2 - 2
          - x3 + x4 >= 1
               - x4 >= -c2 - 3

# In matrix form
ui <- matrix(c(
    1,  0,  0,  0,
   -1,  0,  0,  0,
   -1,  1,  0,  0,
    0, -1,  0,  0,
    0, -1,  1,  0,
    0,  0, -1,  0,
    0,  0, -1,  1,
    0,  0,  0, -1 
  ),
  ncol  = 4,
  byrow = TRUE
)
ci <- c( c1, -c2, 1, -c2-1, 1, -c2-2, 1, -c2-3 )
#约束的初始公式
c1=-c2-3
#以矩阵形式

谢谢文森特。这很有帮助。我想我需要回到高中…哈哈…对于偶然发现这个问题的用户,请注意可行区域是
ui%*%theta>ci
,根据这个@vincent zoonekynd,您将ops约束
c1
转换为
c1@crash好吧,这只能通过
c1+0.00001@vincent zoonekynd这样的方法来完成,只是想知道您在中定义的矩阵ui是否不正确,因为您定义的ui是1 x 32矩阵,而它应该是8 x 4矩阵。不过,你的表现方式非常有帮助。