[R] Quadratic programming
Maija Sirkjärvi
m@|j@@@|rkj@rv| @end|ng |rom gm@||@com
Mon Sep 21 12:36:56 CEST 2020
Thank you for your response!
Bvec is supposed to be a matxit. I'm following the solve.QP (
https://www.rdocumentation.org/packages/quadprog/versions/1.5-8/topics/solve.QP
).
I'm not sure what would be the best way to solve a quadratic programming
problem in R.
ma 21. syysk. 2020 klo 13.20 Abby Spurdle (spurdle.a using gmail.com) kirjoitti:
> One more thing, is bvec supposed to be a matrix?
>
> Note you may need to provide a reproducible example, for better help...
>
> On Mon, Sep 21, 2020 at 10:09 PM Abby Spurdle <spurdle.a using gmail.com> wrote:
> >
> > Sorry, ignore the last part.
> > What I should have said, is the inequality has the opposite sign.
> > >= bvec (not <= bvec)
> >
> >
> > On Mon, Sep 21, 2020 at 10:05 PM Abby Spurdle <spurdle.a using gmail.com>
> wrote:
> > >
> > > Are you using the quadprog package?
> > > If I can take a random shot in the dark, should bvec be -bvec?
> > >
> > >
> > > On Mon, Sep 21, 2020 at 9:28 PM Maija Sirkjärvi
> > > <maija.sirkjarvi using gmail.com> wrote:
> > > >
> > > > 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]]
> > > >
> > > > ______________________________________________
> > > > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > > > and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list