qpipoptmat
Solves a linear quadratic problem.
Calling Sequence
xopt = qpipoptmat(H,f)
xopt = qpipoptmat(H,f,A,b)
xopt = qpipoptmat(H,f,A,b,Aeq,beq)
xopt = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub)
xopt = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0)
xopt = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param)
[xopt,fopt,exitflag,output,lamda] = qpipoptmat( ... )
Parameters
H :
a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.
f :
a vector of double, represents coefficients of linear in the quadratic problem
A :
a vector of double, represents the linear coefficients in the inequality constraints
b :
a vector of double, represents the linear coefficients in the inequality constraints
Aeq :
a matrix of double, represents the linear coefficients in the equality constraints
beq :
a vector of double, represents the linear coefficients in the equality constraints
lb :
a vector of double, contains lower bounds of the variables.
ub :
a vector of double, contains upper bounds of the variables.
x0 :
a vector of double, contains initial guess of variables.
param :
a list containing the the parameters to be set.
xopt :
a vector of double, the computed solution of the optimization problem.
fopt :
a double, the function value at x.
residual :
a vector of double, solution residuals returned as the vector d-C*x.
exitflag :
A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.
output :
Structure containing information about the optimization. This version only contains number of iterations.
lambda :
Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.
Description
Search the minimum of a constrained linear quadratic optimization problem specified by :
\begin{eqnarray}
&\mbox{min}_{x}
& 1/2⋅x^T⋅H⋅x + f^T⋅x \\
& \text{subject to} & A⋅x \leq b \\
& & Aeq⋅x = beq \\
& & lb \leq x \leq ub \\
\end{eqnarray}
The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.
Examples
= 0,
// x2 >= 0
H = [2 0
0 8];
f = [-8; -16];
A = [1 1;1 0];
b = [5;3];
lb = [0; 0];
ub = [%inf; %inf];
[xopt,fopt,exitflag,output,lambda] = qpipoptmat(H,f,A,b,[],[],lb,ub)
// Press ENTER to continue
]]>
Examples
Authors
Keyur Joshi, Saikiran, Iswarya, Harpreet Singh