Warm tip: This article is reproduced from stackoverflow.com, please click
optimization r

R minimize portfolio function with gradient

发布于 2020-04-10 16:11:01

I want to minimize function

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

with gradient grad

And I have constraints:

1) u[1]+u[2]+u[3]+u[4] = 1

2) 0<=u[1]<=1, 0<=u[2]<=1, 0<=u[3]<=1, 0<=u[4]<=1

How to make it correctly? I can make it only for 2 constraint

optim(par=c(0,0,0,0), fn=f,lower=c(0, 0, 0, 0), upper=c(1, 1, 1, 1),method="L-BFGS-B")

But 1 constraint is not true in this case

Questioner
Ильшат Мурзурбеков
Viewed
52
ThomasIsCoding 2020-02-02 15:59

Maybe you can try fmincon from package pracma like below

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))