ContrOptim函数-参数中存在错误

ContrOptim函数-参数中存在错误,r,optimization,minimization,R,Optimization,Minimization,我试图在R中复制Excel解算器,这基本上是一个约束优化问题 我试图最小化每个行动的成本,即总支出/总行动,等于下面的函数,但有一些限制 注册会计师职能: (a+b+c+d)/((consta+(Baln(a)))+ (constb+(Bbln(b)))+(constc+(Bcln(c)))+(constd+(Bdln(d))) 其中未知变量是a,b,c,d,const*代表回归中的常数,b*代表回归中的系数,所以它们是我得到的值 以下是我试图最小化的简化填充函数: (a+b+c+d)/ ((

我试图在R中复制Excel解算器,这基本上是一个约束优化问题

我试图最小化每个行动的成本,即总支出/总行动,等于下面的函数,但有一些限制

注册会计师职能:

(a+b+c+d)/((consta+(Baln(a)))+ (constb+(Bbln(b)))+(constc+(Bcln(c)))+(constd+(Bdln(d)))
其中未知变量是a,b,c,d,const*代表回归中的常数,b*代表回归中的系数,所以它们是我得到的值

以下是我试图最小化的简化填充函数:

(a+b+c+d)/ (((69.31*ln(a))+(14.885*ln(b))+(21.089*ln(c))+(9.934*ln(d))-(852.93))
限制条件:

a+b+c+d>=0    
a+b+c+d<=130000(total spend)
a<=119000 (maxa)
a>=272.56(mina)
b<=11000(maxb)
b>=2.04(minb)
c<=2900(maxc)
c>=408.16(minc)
d<=136800(maxd)
d>=55.02(mind)
我使用约束优化函数来实现这一点。我的代码如下:

g<-function(a,b,c,d) { (a+b+c+d)/((consta+(Balog(a)))+ (constb+(Bblog(b)))+ (constc+(Bclog(c)))+ (constd+(Bdlog(d)))) }

gb<-function(a) g(a[1], a[2], a[3],a[4])

A<-matrix(c(1,0,0,0,-1,0,0,0,0,1,0,0,0,-1,0,0,0,0,1,0,0,0,-1,0,0,0,0,1,0,0,0,-1,-1,-1,-1,-1,1,1,1,1),4,10)

B<- c(mina, -maxa, minb, -maxb, minc, -maxc, mind, -maxd,-totalspend, 0)

constrOptim(c(273,6,409,56),g,gb,A,B)

当我运行优化函数时,它指出我的参数有问题,ui%*%theta中的错误:不一致参数。我认为是函数的梯度编码错误,但我不确定。非常感谢您的帮助。

Balog?Bblog?Bclog?consta+Ba*loga+constb+Bb*logb+constc+Bc*logc+constd+Bd*logdIt仍然不起作用,还有其他想法吗?