在constrOptim中设置约束
在constrOptim函数中是否有一种简单的方法来设置以下约束的θ、ui、ci在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
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矩阵。不过,你的表现方式非常有帮助。