<< 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 C*x-d.

exitflag :

Integer identifying the reason the algorithm terminated. 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 constraints.

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 = [0.9501    0.7620    0.6153    0.4057
0.2311    0.4564    0.7919    0.9354
0.6068    0.0185    0.9218    0.9169
0.4859    0.8214    0.7382    0.4102
0.8912    0.4447    0.1762    0.8936];
d = [0.0578
0.3528
0.8131
0.0098
0.1388];
A = [0.2027    0.2721    0.7467    0.4659
0.1987    0.1988    0.4450    0.4186
0.6037    0.0152    0.9318    0.8462];
b = [0.5251
0.2026
0.6721];
[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 = [0.9501    0.7620    0.6153    0.4057
0.2311    0.4564    0.7919    0.9354
0.6068    0.0185    0.9218    0.9169
0.4859    0.8214    0.7382    0.4102
0.8912    0.4447    0.1762    0.8936];
d = [0.0578
0.3528
0.8131
0.0098
0.1388];
A =[0.2027    0.2721    0.7467    0.4659
0.1987    0.1988    0.4450    0.4186
0.6037    0.0152    0.9318    0.8462];
b =[0.5251
0.2026
0.6721];
Aeq = [3 5 7 9];
beq = 4;
lb = -0.1*ones(4,1);
ub = 2*ones(4,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 >>