how can i solve this with linprog command?

Hey there, need some help with the linprog command. im trying to solve this
max =(7x1+7x2+6x3+9x4)
4x1+5x2+3x3+3x4<=30000
2x1+1.5x2+3x3+3x4<=22000
x1,x2,x3,x4<=0
i tried this:
f = [7 7 6 9];
A = [4 5 3 3;2 1.5 3 3];
b = [30000 22000];
lb = [0 0 0 0];
x = linprog(f,A,b,[],[],lb)

Respuestas (1)

John D'Errico
John D'Errico el 6 de Sept. de 2016
I'm confused. If you want to see:
x1,x2,x3,x4<=0
then why in the name of god and little green apples would you set a LOWER bound of all zeros?
lb = [0 0 0 0];
To me, this seems like a problem for an UPPER bound, not a lower bound.
Yes, I know that you are thinking you want to maximize. That is NOT the way to do it.
Instead, you need to negate the objective function.
f = -[7 7 6 9];
A = [4 5 3 3;2 1.5 3 3];
b = [30000;22000];
lb = [];
ub = [0 0 0 0]
x = linprog(f,A,b,[],[],lb,ub)
Optimization terminated.
x =
-4.5475e-13
0
0
0
It should be no surprise at all that the solution which MAXIMIZES f'*x for non-positive x is essentially x=zeros(4,1).

2 comentarios

Alvaro Vuyk
Alvaro Vuyk el 6 de Sept. de 2016
wow, my bad x1,x2,x3,x4>=0
John D'Errico
John D'Errico el 6 de Sept. de 2016
Editada: John D'Errico el 6 de Sept. de 2016
So then what is the problem?
f = -[7 7 6 9];
lb = [0 0 0 0];
x = linprog(f,A,b,[],[],lb,[])
Optimization terminated.
x =
2.4596e-06
2285.7
7.0595e-06
6190.5
You maximize using a minimization tool by negating the objective.

Iniciar sesión para comentar.

Etiquetas

Preguntada:

el 5 de Sept. de 2016

Editada:

el 6 de Sept. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by