qpipopt
Solves a linear quadratic problem.
Calling Sequence
xopt = qpipopt(nbVar,nbCon,Q,p,LB,UB,conMatrix,conLB,conUB)
[xopt,fopt,exitflag,output,lamda] = qpipopt( ... )
Parameters
nbVar :
a 1 x 1 matrix of doubles, number of variables
nbCon :
a 1 x 1 matrix of doubles, number of constraints
Q :
a n x n matrix of doubles, where n is number of variables, represents coefficients of quadratic in the quadratic problem.
p :
a 1 x n matrix of doubles, where n is number of variables, represents coefficients of linear in the quadratic problem
LB :
a 1 x n matrix of doubles, where n is number of variables, contains lower bounds of the variables.
UB :
a 1 x n matrix of doubles, where n is number of variables, contains upper bounds of the variables.
conMatrix :
a m x n matrix of doubles, where n is number of variables and m is number of constraints, contains matrix representing the constraint matrix
conLB :
a m x 1 matrix of doubles, where m is number of constraints, contains lower bounds of the constraints.
conUB :
a m x 1 matrix of doubles, where m is number of constraints, contains upper bounds of the constraints.
xopt :
a 1xn matrix of doubles, the computed solution of the optimization problem.
fopt :
a 1x1 matrix of doubles, the function value at x.
exitflag :
Integer identifying the reason the algorithm terminated.
output :
Structure containing information about the optimization.
lambda :
Structure containing the Lagrange multipliers at the solution x (separated by constraint type).
Description
Search the minimum of a constrained linear quadratic optimization problem specified by :
find the minimum of f(x) such that
\begin{eqnarray}
&\mbox{min}_{x}
& 1/2*x'*Q*x + p'*x \\
& \text{subject to} & conLB \leq C(x) \leq conUB \\
& & lb \leq x \leq ub \\
\end{eqnarray}
We are calling IPOpt for solving the quadratic problem, IPOpt is a library written in C++. The code has been written by Andreas Wächter and Carl Laird.
Examples
Examples
= 0,
// x2 >= 0
conMatrix= [1 1];
conLB=[-%inf];
conUB = [5];
//with x between ci and cs:
lb=[0,0];
ub=[3,%inf];
//and minimize 0.5*x'*Q*x + p'*x with
p=[-8,-16];
Q=[1,0;0,4];
nbVar = 2;
nbCon = 1;
[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB)
]]>
Authors
Keyur Joshi, Saikiran, Iswarya, Harpreet Singh