March 2008 qpsolve linear quadratic programming solver Calling Sequence [x [,iact [,iter [,f]]]]=qpsolve(Q,p,C,b,ci,cs,me) Parameters Q real positive definite symmetric matrix (dimension n x n). p real (column) vector (dimension n) C real matrix (dimension (me + md) x n). This matrix may be stored as either a dense matrix either a sparse one. b RHS column vector (dimension (me + md)) ci column vector of lower-bounds (dimension n). If there are no lower bound constraints, put ci = []. If some components of x are bounded from below, set the other (unconstrained) values of ci to a very large negative number (e.g. ci(j) = -number_properties('huge'). cs column vector of upper-bounds. (Same remarks as above). me number of equality constraints (i.e. C(1:me,:)*x = b(1:me)) x optimal solution found. iact vector, indicator of active constraints. The first non zero entries give the index of the active constraints iter . 2x1 vector, first component gives the number of "main" iterations, the second one says how many constraints were deleted after they became active. Description Minimize 0.5*x'*Q*x + p'*x under the constraints C(j,:) x = b(j), j=1,...,me C(j,:) x <= b(j), j=me+1,...,me+md ci <= x <= cs This function requires Q to be positive definite, if it is not the case, one may use the quapro function. Examples //Find x in R^6 such that: //C1*x = b1 (3 equality constraints i.e me=3) C1= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0]; b1=[1;2;3]; //C2*x <= b2 (2 inequality constraints) C2=[0,1,0,1,2,-1; -1,0,2,1,1,0]; b2=[-1;2.5]; //with x between ci and cs: ci=[-1000;-10000;0;-1000;-1000;-1000];cs=[10000;100;1.5;100;100;1000]; //and minimize 0.5*x'*Q*x + p'*x with p=[1;2;3;4;5;6]; Q=eye(6,6); //No initial point is given; C=[C1;C2] ; // b=[b1;b2] ; // me=3; [x,iact,iter,f]=qpsolve(Q,p,C,b,ci,cs,me) //Only linear constraints (1 to 4) are active See Also optim qp_solve qld The contributed toolbox "quapro" may also be of interest, in particular for singular Q. Authors S. Steer , INRIA (Scilab interface) Berwin A. Turlach ,School of Mathematics and Statistics (M019), The University of Western Australia, Crawley, AUSTRALIA (solver code) Used Functions qpgen1.f (also named QP.solve.f) developped by Berwin A. Turlach according to the Goldfarb/Idnani algorithm