<< Symphony Toolbox Symphony Toolbox lsqnonneg >>

Symphony Toolbox >> Symphony Toolbox > lsqlin

lsqlin

Solves a linear quadratic problem.

Calling Sequence

xopt = lsqlin(C,d,A,b)
xopt = lsqlin(C,d,A,b,Aeq,beq)
xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)
xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,param)
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin( ... )

Parameters

C :

a matrix of double, represents the multiplier of the solution x in the expression C*x - d. Number of columns in C is equal to the number of elements in x.

d :

a vector of double, represents the additive constant term in the expression C*x - d. Number of elements in d is equal to the number of rows in C matrix.

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.

resnorm :

a double, objective value returned as the scalar value norm(C*x-d)^2.

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 least square problem specified by :

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

Examples

//A simple linear least square example
C = [ 2 0;
-1 1;
0 2]
d = [1
0
-1];
A = [10 -2;
-2 10];
b = [4
-4];
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b)
// Press ENTER to continue

Examples

//A basic example for equality, inequality constraints and variable bounds
C = [1 1 1;
1 1 0;
0 1 1;
1 0 0;
0 0 1]
d = [89;
67;
53;
35;
20;]
A = [3 2 1;
2 3 4;
1 2 3];
b = [191
209
162];
Aeq = [1 2 1];
beq = 10;
lb = repmat(0.1,3,1);
ub = repmat(4,3,1);
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub)

Authors


Report an issue
<< Symphony Toolbox Symphony Toolbox lsqnonneg >>