ESCUELA SUPERIOR POLITÉCNICA DE
CHIMBORAZO
FACULTAD DE MECÁNICA
ESCUELA DE MECÁNICA
TEMA:
MÉTODO SIMPLEX Y MÉTODO GRAFICO DEL
EJERCICIO
INTEGRANTES:
• TRUJILLO MONTOYA ALEX FERNANDO (8644)
MATERIA: INGENIERÍA EN OPERACIONES
DOCENTE: Ing. ALBUJA VERÓNICA
La empresa “Arcoiris” produce pinturas para interiores y exteriores con dos materias primas, A y B. El
siguiente cuadro resume las toneladas de materia prima que se requieren para cada tipo de pintura, la
disponibilidad diaria de materia prima y la utilidad por tonelada para cada tipo de pintura:
Una encuesta de mercado indica que la demanda diaria de pintura para interiores no puede exceder la de
pintura para exteriores en más de una tonelada. Asimismo, que la demanda diaria máxima de pintura para
interiores es de dos toneladas. La empresa se propone determinar la (mejor) combinación óptima de pinturas
para interiores y exteriores que maximice la utilidad diaria total.
Solución: La función objetivo es:
𝑀𝑎𝑥 𝑍 = 5𝑥1 + 4𝑥2
Restricciones:
6𝑥1 + 4𝑥2 ≤ 24
1𝑥1 + 2𝑥2 ≤ 6
𝑥2 − 𝑥1 ≤ 1
𝑥2 ≤ 2
Método SIMPLEX:
% Coeficientes de la función objetivo (convertido a minimización)
f = [-5, -4]; % Negamos porque linprog minimiza
% Matriz de restricciones A * x <= b
A = [6, 4;
1, 2;
-1, 1;
0, 1];
b = [24; 6; 1; 2];
% Restricciones de no negatividad
lb = [0, 0]; % x1 >= 0, x2 >= 0
% Resolver usando método dual-simplex
options = optimoptions('linprog','Algorithm','dual-simplex','Display','iter');
[x, fval] = linprog(f, A, b, [], [], lb, [], options);
% Mostrar resultados
fprintf('Valor óptimo de Z: %.2f\n', -fval); % Negamos para obtener max Z
fprintf('Valores óptimos: x1 = %.2f, x2 = %.2f\n', x(1), x(2));
CAPTURA:
Método
GRÁFICO:
clc; clear;
% Crear un grid de valores
[x1, x2] = meshgrid(0:0.1:10, 0:0.1:10);
% Definir restricciones
r1 = 6*x1 + 4*x2 <= 24;
r2 = x1 + 2*x2 <= 6;
r3 = x2 - x1 <= 1;
r4 = x2 <= 2;
% Zona factible
factible = r1 & r2 & r3 & r4;
% Graficar zona factible sombreada
figure;
hold on;
title('Método gráfico - Zona factible');
xlabel('x_1'); ylabel('x_2');
grid on;
% Sombrear región factible
contourf(x1, x2, factible, [1 1], 'FaceColor', [0.8 1 0.8], 'EdgeColor', 'none');
% Dibujar restricciones como líneas
fimplicit(@(x1,x2) 6*x1 + 4*x2 - 24, [0 10 0 10], 'r', 'LineWidth', 1.5);
fimplicit(@(x1,x2) x1 + 2*x2 - 6, [0 10 0 10], 'b', 'LineWidth', 1.5);
fimplicit(@(x1,x2) x2 - x1 - 1, [0 10 0 10], 'm', 'LineWidth', 1.5);
line([0 10], [2 2], 'Color', 'k', 'LineWidth', 1.5); % x2 <= 2
legend('Zona factible', ...
'6x_1 + 4x_2 = 24', ...
'x_1 + 2x_2 = 6', ...
'x_2 - x_1 = 1', ...
'x_2 = 2');
% Calcular puntos de intersección (vértices)
A = [6 4; 1 2; -1 1; 0 1];
b = [24; 6; 1; 2];
% Todas combinaciones posibles de intersección
vertices = [];
% Elegimos pares de restricciones y resolvemos el sistema de ecuaciones
combs = nchoosek(1:4, 2);
for i = 1:size(combs,1)
Aeq = A(combs(i,:), :);
beq = b(combs(i,:));
punto = Aeq \ beq;
if all(punto >= 0) % no negatividad
if all(A * punto <= b + 1e-5) % punto factible
vertices = [vertices; punto'];
end
end
end
% Eliminar duplicados
vertices = unique(vertices, 'rows');
% Evaluar función objetivo Z = 5x1 + 4x2 en los vértices
Z = 5*vertices(:,1) + 4*vertices(:,2);
% Mostrar vértices en la gráfica
for i = 1:size(vertices,1)
plot(vertices(i,1), vertices(i,2), 'ko', 'MarkerSize', 8, 'MarkerFaceColor',
'y');
text(vertices(i,1)+0.1, vertices(i,2), ...
sprintf('(%g, %g)', vertices(i,1), vertices(i,2)));
end
% Mostrar el punto óptimo
[Zmax, idx] = max(Z);
x_opt = vertices(idx, :);
plot(x_opt(1), x_opt(2), 'gp', 'MarkerSize', 12, 'MarkerFaceColor', 'g');
text(x_opt(1)+0.2, x_opt(2)-0.2, sprintf('Máx Z=%.2f', Zmax), 'FontWeight','bold');
Max Z = 5(1) + 4(2) = 13
Max Z = 5(3) + 4(1.5) = 21
Max Z = 5(2) + 4(2) = 18
Max Z = 5(0) + 4(0) = 0
Max Z = 5(0) + 4(1) = 4
Max Z = 5(4) + 4(0) = 20
Conclusión:
Para maximizar sus ganancias sin sobrepasar las restricciones de recursos y demanda, la empresa
debería producir exactamente 3 toneladas de pintura para exteriores y 1.5 toneladas para
interiores cada día.
Este resultado fue validado con tres métodos: solución computacional en R, resolución por el
método gráfico, y el método simplex en MATLAB, confirmando la consistencia del modelo.