附表
LINPROG Linear programming.
X=LINPROG(f,A,b) attempts to solve the linear programming problem:
min f'*x subject to: A*x <= b
x
X=LINPROG(f,A,b,Aeq,beq) solves the problem above while additionally
satisfying the equality constraints Aeq*x = beq.
X=LINPROG(f,A,b,Aeq,beq,LB,UB) defines a set of lower and upper
bounds on the design variables, X, so that the solution is in
the range LB <= X <= UB. Use empty matrices for LB and UB
if no bounds exist. Set LB(i) = -Inf if X(i) is unbounded below;
set UB(i) = Inf if X(i) is unbounded above.
X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0) sets the starting point to X0. This
option is only available with the active-set algorithm. The default
interior point algorithm will ignore any non-empty starting point.
X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0,OPTIONS) minimizes with the default
optimization parameters replaced by values in the structure OPTIONS, an
argument created with the OPTIMSET function. See OPTIMSET for details.
Options are Display, Diagnostics, TolFun, LargeScale, MaxIter.
Currently, only 'final' and 'off' are valid values for the parameter
Display when LargeScale is 'off' ('iter' is valid when LargeScale is 'on').
[X,FVAL]=LINPROG(f,A,b) returns the value of the objective function at X:
FVAL = f'*X.
[X,FVAL,EXITFLAG] = LINPROG(f,A,b) returns an EXITFLAG that describes the
exit condition of LINPROG. Possible values of EXITFLAG and the corresponding
exit conditions are
1 LINPROG converged to a solution X.
0 Maximum number of iterations reached.
-2 No feasible point found.
-3 Problem is unbounded.
-4 NaN value encountered during execution of algorithm.
-5 Both primal and dual problems are infeasible.
-7 Search direction became too small; no further progress can be made.
[X,FVAL,EXITFLAG,OUTPUT] = LINPROG(f,A,b) returns a structure
OUTPUT with the number of iterations taken in OUTPUT.iterations, the type
of algorithm used in OUTPUT.algorithm, the number of conjugate gradient
iterations (if used) in OUTPUT.cgiterations, and the exit message in
OUTPUT.message.
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=LINPROG(f,A,b) returns the set of
Lagrangian multipliers LAMBDA, at the solution: LAMBDA.ineqlin for the
linear inequalities A, LAMBDA.eqlin for the linear equalities Aeq,
LAMBDA.lower for LB, and LAMBDA.upper for UB.
NOTE: the LargeScale (the default) version of LINPROG uses a primal-dual
method. Both the primal problem and the dual problem must be feasible
for convergence. Infeasibility messages of either the primal or dual,
or both, are given as appropriate. The primal problem in standard
form is
min f'*x such that A*x = b, x >= 0.
The dual problem is
max b'*y such that A'*y + s = f, s >= 0.