[R] Quadratic programming

Maija Sirkjärvi m@|j@@@|rkj@rv| @end|ng |rom gm@||@com
Mon Sep 21 11:28:23 CEST 2020


Hi!

I was wondering if someone could help me out. I'm minimizing a following
function:

\begin{equation}
$$\sum_{j=1}^{J}(m_{j} -\hat{m_{j}})^2,$$
\text{subject to}
$$m_{j-1}\leq m_{j}-\delta_{1}$$
$$\frac{1}{Q_{j-1}-Q_{j-2}} (m_{j-2}-m_{j-1}) \leq \frac{1}{Q_{j}-Q_{j-1}}
(m_{j-1}-m_{j})-\delta_{2} $$
\end{equation}

I have tried quadratic programming, but something is off. Does anyone have
an idea how to approach this?

Thanks in advance!

Q <- rep(0,J)
for(j in 1:(length(Price))){
  Q[j] <- exp((-0.1) * (Beta *Price[j]^(Eta + 1) - 1) / (1 + Eta))
}

Dmat <- matrix(0,nrow= J, ncol=J)
diag(Dmat) <- 1
dvec <- -hs
Aeq <- 0
beq <- 0
Amat <- matrix(0,J,2*J-3)
bvec <- matrix(0,2*J-3,1)

for(j in 2:nrow(Amat)){
  Amat[j-1,j-1] = -1
  Amat[j,j-1] = 1
}
for(j in 3:nrow(Amat)){
  Amat[j,J+j-3] = -1/(Q[j]-Q[j-1])
  Amat[j-1,J+j-3] = 1/(Q[j]-Q[j-1])
  Amat[j-2,J+j-3] = -1/(Q[j-1]-Q[j-2])
}
for(j in 2:ncol(bvec)) {
  bvec[j-1] = Delta1
}
for(j in 3:ncol(bvec)) {
  bvec[J-1+j-2] = Delta2
}
solution <- solve.QP(Dmat,dvec,Amat,bvec=bvec)

	[[alternative HTML version deleted]]



More information about the R-help mailing list