Solve nonnegative least squares problems.

Solve nonnegative least squares problems.

x = cplexlsqnonneglin(C, d) x = cplexlsqnonneglin(C, d, Aineq, bineq) x = cplexlsqnonneglin(C, d, Aineq, bineq, Aeq, beq) x = cplexlsqnonneglin(C, d, Aineq, bineq, Aeq, beq, x0) x = cplexlsqnonneglin(C, d, Aineq, bineq, Aeq, beq, x0, options) x = cplexlsqnonneglin(problem) [x, resnorm] = cplexlsqnonneglin(...) [x, resnorm, residual] = cplexlsqnonneglin(...) [x, resnorm, residual, exitflag] = cplexlsqnonneglin(...) [x, resnorm, residual, exitflag, output] = cplexlsqnonneglin(...) [x, resnorm, residual, exitflag, output, lambda] = cplexlsqnonneglin(...)

Finds the minimum of a problem specified by

min min norm(C*x-d)^2 st. Aineq*x <= bineq Aeq*x = beq x >= 0

**Parameters:**-
`problem`

Structure containing the following fields `C`

Double matrix for objective function `d`

Double column vector for objective function `Aineq`

Double matrix for linear inequality constraints `bineq`

Double column vector for linear inequality constraints `Aeq`

Double matrix for linear equality constraints `beq`

Double column vector for linear equality constraints `x0`

Double column vector of initial point of `x`

`options`

Options structure created with `cplexoptimset`

**Return values:**-
`x`

Solution found by the optimization function. If `exitflag > 0`

, then`x`

is a solution; otherwise,`x`

is the value of the optimization routine when it terminated prematurely.`resnorm`

Value of the objective function at the solution `x`

`residual`

Residual at the solution `exitflag`

Integer identifying the reason the optimization algorithm terminated `output`

Structure containing information about the optimization. The fields of the structure are:

`iterations`

: Number of iterations

`algorithm`

: Optimization algorithm used

`message`

: Exit message

`time`

: Execution time of the algorithm

`cplexstatus`

: Status code of the solution

`cplexstatusstring`

: Status string of the solution`lambda`

Structure containing the Lagrange multipliers at the solution `x`

(separated by constraint type). This is only available for problems that do not contain quadratic constraints. See`cplexqp()`

for details.

**Usage:**`x = cplexlsqnonneglin(C, d)`

solves the least squares problem`min norm(C*x-d)^2`

such that`x >= 0`

.

`x = cplexlsqnonneglin(C, d, Aineq, bineq)`

solves the preceding problem with the additional inequality constraints `Aineq*x <= bineq`

.

`x = cplexlsqnonneglin(C, d, Aineq, bineq, Aeq, beq)`

solves the preceding problem with the additional equality constraints `Aeq*x = beq`

. If no inequalities exist, set `Aineq=[]`

and `bineq=[]`

.

`x = cplexlsqnonneglin(C, d, Aineq, bineq, Aeq, beq, x0)`

sets the starting point for the algorithm to `x0`

. If no equalities exist, set `Aeq=[]`

and `beq=[]`

.

`x = cplexlsqnonneglin(C, d, Aineq, bineq, Aeq, beq, x0, options)`

minimizes with the default optimization options replaced by values in the structure `options`

, which can be created using the function `cplexoptimset`

. If you do not want to give an initial point, set `x0=[]`

.

`x = cplexlsqnonneglin(problem)`

where `problem`

is a structure.

`[x,resnorm] = cplexlsqnonneglin(...)`

returns the value of the objective function at the solution `x`

: `resnorm = norm(C*x-d)^2`

.

`[x,resnorm,residual] = cplexlsqnonneglin(...)`

returns the residual at the solution: `C*x-d`

.

`[x,resnorm,residual,exitflag] = cplexlsqnonneglin(...)`

returns a value `exitflag`

that describes the exit condition of `cplexlsqnonneglin`

.

`[x,resnorm,residual,exitflag,output] = cplexlsqnonneglin(...)`

returns a structure `output`

that contains information about the optimization.

`[x,resnorm,residual,exitflag,output,lambda] = cplexlsqnonneglin(...)`

returns a structure `lambda`

whose fields contain the Lagrange multipliers at the solution `x`

.

See cplexmiqcp for a description of exitflag values.

See also cplexoptimset.

© Copyright IBM Corporation 2008, 2017. All Rights Reserved.