# Solving a linear programming problem uising linprog

43 visualizzazioni (ultimi 30 giorni)
Sergio il 23 Mag 2024 alle 9:40
Commentato: Sergio il 23 Mag 2024 alle 13:16
I have the given linear program to solve.
To solve this I prepare the following for the constraints on each of the six variables:
A = [110 205 160 160 420 260;
4 32 13 8 4 14;
2 12 54 285 22 80];
b = [2000 55 800];
where the function to be minimized with constraints:
f = [3 24 13 9 20 19];
lb = [0,0,0,0,0,0];
ub = [4,3,2,8,2,2];
Is solved by:
options = optimoptions('linprog','Algorithm','dual-simplex');
[x,fval,exitflag,output] = linprog(f,A,b,lb,ub,options)
.
I get "Error using linprog (line 182)
LINPROG requires the following inputs to be of data type double: 'LB'"
How do I prepare the linear inequalities correctly?
With Thanks
##### 2 CommentiMostra NessunoNascondi Nessuno
Ayush Modi il 23 Mag 2024 alle 9:57
Try this ->
beq = [2000;55;800];
Sergio il 23 Mag 2024 alle 10:09
@Ayush Modi I found that out, it was wrong to have beq in the code. I removed it, now it should be right, but the error is completely different now..

Accedi per commentare.

### Risposta accettata

Torsten il 23 Mag 2024 alle 11:55
Modificato: Torsten il 23 Mag 2024 alle 11:56
A = -[110 205 160 160 420 260;...
4 32 13 8 4 14;...
2 12 54 285 22 80];
b = -[2000; 55; 800];
Aeq = [];
beq = [];
where the function to be minimized with constraints:
f = [3 24 13 9 20 19];
lb = [0,0,0,0,0,0];
ub = [4,3,2,8,2,2];
Is solved by:
options = optimoptions('linprog','Algorithm','dual-simplex');
[x,fval,exitflag,output] = linprog(f,A,b,Aeq,beq,lb,ub,options)
Optimal solution found.
x = 6x1
4.0000 0 0 4.5000 2.0000 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
fval = 92.5000
exitflag = 1
output = struct with fields:
iterations: 3 algorithm: 'dual-simplex-highs' constrviolation: 0 message: 'Optimal solution found.' firstorderopt: 1.7764e-15
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Sergio il 23 Mag 2024 alle 13:16
Formidable. Thanks Torsten!

Accedi per commentare.

### Più risposte (1)

Ayush Modi il 23 Mag 2024 alle 10:14
Modificato: Ayush Modi il 23 Mag 2024 alle 10:14
Hi Sergio,
The error you are getting is because of extra parameters in the function call. Here is how you can make the call to the "linprog" function with lower and upper bounds:
x = linprog(f,A,b,Aeq,beq,lb,ub,options) % Maximum 8 parameters
Refer to the following MathWorks documentation for more information on syntax of "linprog" function:
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Sergio il 23 Mag 2024 alle 10:24
Sorry, that doesn't work.

Accedi per commentare.

### Categorie

Scopri di più su Solver Outputs and Iterative Display in Help Center e File Exchange

R2024a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by