Académique Documents
Professionnel Documents
Culture Documents
gl/znCEkr
São Paulo
2018
Exercício 1
No item [a] o ponto de máximo para o problema é o ponto , conforme mostrado na
figura seguinte
Já para o item [b], como a restição é paralela às curvas de nível, o problema apresenta múltiplas
soluções, a figura abaixo mostra alguns dos pontos ótimos.
Para o terceiro problema, nota-se que quando todas as restrições dadas são impostas, não existe domínio
viável, uma vez não existe nenhum ponto que satisfaça todas as restrições simultaneamente.
function exe1()
%EXE1 Solution to exercise 1 (list 4)
syms x y
% optmization problems
%%
function plotGradient(f, g, fvars, fhandle)
ffun = matlabFunction(f);
% gradient
grad = matlabFunction(transpose(gradient(f, fvars)), 'Outputs',{'G1', 'G2'});
Z = ffun(X_1, X_2);
try
G = grad(X_1, X_2); %matrix with the gradient values
catch
[G1, G2] = gradient(Z, 0.5, 0.5); %numerical gradient
G = [G1, G2];
end
set(fhandle,'color','white');
% -> plot vector field
quiver(X_1, X_2, G(:, 1:size(G, 2)/2), G(:,size(G, 2)/2 + 1:size(G, 2)));
xlabel(strcat('$', char(fvars(1)), '$'), 'Interpreter','latex', 'FontSize',17);
ylabel(strcat('$', char(fvars(2)), '$'), 'Interpreter','latex', 'FontSize',17);
title('Gradient and Constraint Plot');
hold on
%%
function plotConstraints(f, g, fvars, fhandle)
% Plotting Contraints
%make a finer grid for contraints
% plot contraints
scatter(X_1(:),X_2(:),10,feasible_domain(:),'filled');
end
%%
function plotOptimSol(point)
scatter(point(:, 1), point(:, 2), 30, 'r', 'filled');
end
Exercício 2
2.1
[a]
Seja o número de caçarolas e o número de frigideiras a ser produzidos, a função de faturamento é dada
por
[b]
A produção total dos produtos não pode ultrapassar o estoque de matéria-prima, além disso não se pode
ter uma quantidade negativa de produtos, desta forma as restrições do problema são:
[c]
[d]
Este problema de otimização em questão trata-se de um problema linear. Foi resolvido geometricamente e
usando a função fmincon do matlab, para isso o problema foi reescrito para ficar no formato necessário
do Matlab, como mostrado
A = [0.05, 0.2;
1, 0.8;
-1, 0;
0, -1];
X0 = [7.4, 3.1].*10^4;
X = fmincon(fun,X0,A,B)
[a]
[b]
[c]
[d]
O código abaixo em Matlab calcula o ponto ótimo para o problema do item c
A = [-0.05, -1;
-0.2, -0.8];
B = [-50; -70];
X0 = [7.4, 3.1].*10^4;
X = fmincon(fun,X0,A,B)
A solução do problema é
Os problemas são duais uma vez que as funções e apresentam o mesmo valor no ponto de
ótimo.