<< qpipopt Symphony Toolbox symphony >>

Symphony Toolbox >> Symphony Toolbox > qpipoptmat

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 :

The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.

Examples

//Ref : example 14 :
//https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
// min. -8*x1*x1 -16*x2*x2 + x1 + 4*x2
// such that
//    x1 + x2 <= 5,
//    x1 <= 3,
//    x1 >= 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

//Find x in R^6 such that:
Aeq= [1,-1,1,0,3,1;
-1,0,-3,-4,5,6;
2,5,3,0,1,0];
beq=[1; 2; 3];
A= [0,1,0,1,2,-1;
-1,0,2,1,1,0];
b = [-1; 2.5];
lb=[-1000; -10000; 0; -1000; -1000; -1000];
ub=[10000; 100; 1.5; 100; 100; 1000];
x0 = repmat(0,6,1);
param = list("MaxIter", 300, "CpuTime", 100);
//and minimize 0.5*x'*H*x + f'*x with
f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param)

Authors


Report an issue
<< qpipopt Symphony Toolbox symphony >>