[R] quadprog issues---how to define the constriants
Enrico Schumann
es at enricoschumann.net
Tue Mar 19 08:37:05 CET 2013
Hi Jiting,
On Fri, 15 Mar 2013, Jiting Xu <jiting.xu at gmail.com> writes:
> Hi list:
>
> This is my first time to post my question on the list. Thanks for your
> help.
>
> I am solving a quadratic programming using R. Here is my question:
>
> w = arg min 0.5*w'Mw - w'N
> s. t. sum(w) = 1;
> w>0
>
> note: w is weight vector, each w_i must >=0, and the sum of w =1.
>
> Here is my R code:
>
> A <-matrix(c(2.26,1.26,1.12,1.12,2.27,1.13,1.12,1.13,2.2),3,3);
shouldn't that be a symmetric matrix?
> B <- c(0.007459281,0.007448885,0.007447850);
> M <-nrow(A);
> Amat <- cbind(rep(1,M), diag(M));
> bvec <- c(1,rep(0,M)) ;
> meq <- 1;
>
> min <- solve.QP(Dmat=A,dvec=B,Amat=Amat,bvec=bvec,meq=meq)
>
> init_prior.weig <-min$solution;
>
> cat("weight = ",init_prior.weig,"\n" )
>
>
>
> My question is: When I tried "big" matrix A and B, I get some negative
> weights. I think I already put the constraints(w>0). I want all weights >
> 0;
>
Could you post an example in which you get negative weights? Before you
do: how large, in absolute terms, are these negative values? If they are
like -1e-15, then they are simply "numeric noise".
(And you have specified the constraint w>=0. If you really want w>0 in a
meaningful sense, you will have to be more specific: you will have to
set w > eps, in which eps is the minimal weight that would be
sufficiently greater than zero in your application.)
> Do I put the right constraints ?
>
> Could you help figure out it. Thanks in advance.
>
> Jiting
>
Regards,
Enrico
--
Enrico Schumann
Lucerne, Switzerland
http://enricoschumann.net
More information about the R-help
mailing list