| 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 | ![]() |