Optimization Toolbox | ![]() ![]() |
Linear Programming with Equalities and Inequalities
and you can load the matrices and vectors A
, Aeq
, b
, beq
, f
and the lower bounds lb
into the MATLAB workspace with
load sc50b
This problem in sc50b.mat
has 48 variables, 30 inequalities and 20 equalities.
You can use linprog
to solve the problem.
[x,fval,exitflag,output] = ... linprog(f,A,b,Aeq,beq,lb,[],[],optimset('Display','iter'));
Since the iterative display was set using optimset
, the results printed to the command line window are
Residuals: Primal Dual Duality Total Infeas Infeas Gap Rel A*x-b A'*y+z-f x'*z Error ------------------------------------------------------ Iter 0: 1.50e+003 2.19e+001 1.91e+004 1.00e+002 Iter 1: 1.15e+002 2.94e-015 3.62e+003 9.90e-001 Iter 2: 1.16e-012 2.21e-015 4.32e+002 9.48e-001 Iter 3: 3.23e-012 5.16e-015 7.78e+001 6.88e-001 Iter 4: 5.78e-011 7.61e-016 2.38e+001 2.69e-001 Iter 5: 9.31e-011 1.84e-015 5.05e+000 6.89e-002 Iter 6: 2.96e-011 1.62e-016 1.64e-001 2.34e-003 Iter 7: 1.51e-011 2.74e-016 1.09e-005 1.55e-007 Iter 8: 1.51e-012 2.37e-016 1.09e-011 1.51e-013 Optimization terminated successfully.
For this problem the large-scale linear programming algorithm quickly reduces the scaled residuals below the default tolerance of 1e-08
.
The exitflag
value is positive telling you linprog
converged. You can also get the final function value in fval
and the number of iterations in output.iterations
.
exitflag = 1 fval = -70.0000 output = iterations: 8 cgiterations: 0 algorithm: 'lipsol'
![]() | Linear Least Squares with Bound Constraints | Linear Programming with Dense Columns in the Equalities | ![]() |