R-带梯度的最小投资组合函数

R-带梯度的最小投资组合函数,r,optimization,R,Optimization,我想最小化函数 f <- function(u){ return(-(1+u[1]+u[2]+u[3]+u[4])) } 但是1约束在这种情况下不是真的也许您可以从下面的包pracma中尝试fmincon pracma::fmincon(c(0,0,0,0), f, gr = grad, Aeq = cbind(1,1,1,1), beq = 1, lb = c(0,0,0,0),

我想最小化函数

f <- function(u){
  return(-(1+u[1]+u[2]+u[3]+u[4]))
}

但是1约束在这种情况下不是真的

也许您可以从下面的包
pracma
中尝试
fmincon

pracma::fmincon(c(0,0,0,0), 
        f, 
        gr = grad, 
        Aeq = cbind(1,1,1,1), 
        beq = 1,
        lb = c(0,0,0,0), 
        ub = c(1,1,1,1))

谢谢,但这也是不正确的,因为如果我把
lower=c(0.5,0.5,0.5,0.5)
的结果将是
0.5,0.5,0.5
(1个约束将是错误的),我只需要在u等于1的和上加1个约束,因为(1)目标函数
f
,等于-2,不管u值是多少。@G.Grothendieck当然,我知道。这是对想法的评论,使f=(u1+u2+u3+u4-1)并最小化。在我在zero iteration capital=1中的任务中,u是盈利能力。(此注释已删除)这似乎是真正的解决方案,但我有
参数“Aeq”必须是一个具有长度(x0)列的矩阵
。虽然
length(x0)=length(Aeq)=4
得到了它
Aeq=cbind(1,1,1,1)
@crmk_зззззззззббзббз。这是否解决了你的问题?
pracma::fmincon(c(0,0,0,0), 
        f, 
        gr = grad, 
        Aeq = cbind(1,1,1,1), 
        beq = 1,
        lb = c(0,0,0,0), 
        ub = c(1,1,1,1))