Hi, I'm using the package quadprog to solve the following quadratic programming problem.
I want to minimize the function (b_1-b_2)^2+(b_3-b_4)^2 by the following constraints b_i, i=1,...,4: b_1+b_3=1 b_2+b_4=1 0.1<=b_1<=0.2 0.2<=b_2<=0.4 0.8<=b_3<=0.9 0.6<=b_4<=0.8 In my opinion the solution should be b_1=b_2=0.2 und b_3=b_4=0.8. Unfortunately R doesn't find this solution and what's surprising to me, evaluation the solution of solve.QP with my function doesn't lead the minimal "value" calculated by solve.QP I would be very happy, if anyone could help and tell me, where's my mistake. Thank you very much. Fabian My R-code also containing the sampel of quadprog starts here: #sample from quadprog package library(quadprog) Dmat <- matrix(0,3,3) diag(Dmat) <- 1 dvec <- c(0,5,0) Amat <- matrix(c(-4,-3,0,2,1,0,0,-2,1),3,3) bvec <- c(-8,2,0) erg<-solve.QP(Dmat,dvec,Amat,bvec=bvec) print(erg) erg<-erg$solution -dvec%*%erg+.5*erg^T%*%Dmat%*%erg # my "non working" sample n<-2 k<-2 Dmatj<-diag((n-1),n) Dmatj[lower.tri(Dmatj)]<--2 Dmat<-matrix(0,nrow=n*k,ncol=n*k) for(j in 1:k){ Dmat[((j-1)*n+1):(j*n),((j-1)*n+1):(j*n)]<-Dmatj } print(Dmat) Amat<-matrix(ncol=n,nrow=k*n,0) ind<-seq(1,((k-1)*n+1),n) for(i in 1:n){ Amat[(ind+(i-1)),i]<-1 } Amat<-cbind(Amat,diag(n*k),-diag(n*k)) print(Amat) bvec<-c(rep(1,n),c(0.1,0.2,0.8,0.6,-0.2,-0.4,-0.9,-0.8)) print(bvec) dvec=rep(0,(n*k)) erg<-solve.QP(Dmat,dvec,Amat,bvec,meq=n) print(erg) erg<-erg$solution -dvec%*%erg+.5*erg^T%*%Dmat%*%erg ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html