Você está na página 1de 5

Universidade de Braslia

Braslia, 2 de abril de 2016

Otimizao Mtodo da Seo urea


i)

Diagrama de Blocos
(i+1) = U(i+1) - L(i+1)

Incio

Sim

L(1), U(1),
tol = 1.10-5,
s(x)

No
Se s(xU(i))>
s(xL(i))

(i) = U(i) - L(i)


= 0.61803
xL(i) = L(i) + * (i)
xU(i) = U(i) - * (i)
sL(i) = s(xL(i))
sU(i) = s(xU(i))

xL(i+1)=L(i+1)+ *
(i+1)
sL(i+1)=s(xL(i+1))

xU(i+1)=U(i+1)- *
(i+1)
sU(i+1)=s(xU(i+1))

Para i = 1
at 100

No

(i+1) <
tol

Se s(xU(i)) >
s(xL(i))

Sim

No

U(i+1)=xL(i)
xL(i+1)=xU(i)
sL(i+1)=sU(i)
L(i+1)=L(i)

ii)

Cdigo
Programa Principal:

L(i+1)
xU(i+1)
U(i+1)
U(i+1)

=
=
=
=

xU(i)
xL(i)
sL(i)
U(i)

Sim

U(1)=U(i),
L(1)=L(i), i
= i + 1

Fim

tic
L(1)=0.0;
U(1)=2.0;
i=1;
tol=1E-05;
Delta(i)=U(i)-L(i);
alfa=0.61803;
xL(i)=L(i)+alfa*Delta(i);
xU(i)=U(i)-alfa*Delta(i);
sL(i)=s(xL(i));
sU(i)=s(xU(i));
for i=1:100
if s(xU(i)) > s(xL(i))
L(i+1)=xU(i);
xU(i+1)=xL(i);
sU(i+1)=sL(i);
U(i+1)=U(i);
else
U(i+1)=xL(i);
xL(i+1)=xU(i);
sL(i+1)=sU(i);
L(i+1)=L(i);
end
Delta(i+1)=U(i+1)-L(i+1);
if s(xU(i))>s(xL(i))
xL(i+1)=L(i+1)+alfa*Delta(i+1);
sL(i+1)=s(xL(i+1));
else
xU(i+1)=U(i+1)-alfa*Delta(i+1);
sU(i+1)=s(xU(i+1));
end
if (Delta(i+1)<tol)
break
end
end
time = toc
i
[L' U']
plotx = L(1):0.1:U(1);
ploty = s(plotx);
plot(plotx,ploty,'r-x');

title('Mximo intervalo [2,6]');


xlabel ('x');
ylabel ('s(x)');

Funo:

function out=s(x)
out=(1.0)*(x.^4-14.*x.^3+60.*x.^2-70.*x);
end

iii)

Mnimos, Mximo e Tempo Computacional

Para cada um dos intervalos estabelecidos para descobrir os mnimos e mximos da


funo foram definidos para ser possvel o uso do mtodo de busca da seo urea, e,
desse modo, os resultados podem ser encontrados abaixo:
Tabela 1. Resultados dos mnimos, mximos, nmero de iteraes e Tempo
computacional.
[0,2]

[2,6]

[4,7]

Mnimo

0.7809

5.9572

Mximo

3.7619

Iteraes

26

27

27

0.0261

0.0265

0.0263

Tempo
Computacional (s)

iv)

Grficos dos intervalos

Os dados obtidos podem ser plotados para uma melhor visualizao dos pontos de mximo
e mnimo, dentro dos intervalos de busca definidos anteriormente:

Figura 1. Mnimo no intervalo de [0,2].

Figura 2. Mnimo no intervalo de [2,6].

Figura 3. Mnimo no intervalo de [4,7].

v)

Discusso

Com o uso do mtodo da seo urea, foi possvel encontrar os pontos de mximo e
mnimo na funo selecionada (S(x) = x4 14x3 + 60x2 70x), com praticamente o
mesmo nmero de iteraes e tempo computacional de execuo para cada intervalo.
Para o caso do ponto mximo, usada a minimizao da funo negativa, ou seja, f(x) =
-S(x).
O Mtodo de busca utilizado demonstra a capacidade de um mtodo relativamente
simples de encontrar os mximos e mnimos de funes que no exijam carga
computacional, com aproximao de modo razovel para se determinar esses tipos de
pontos. Desde que um intervalo seja delimitado, pois se trata de um mtodo que
necessita de uma funo objetivo unimodal, ele cumpre com a finalidade estabelecida
que a de minimizar funes.

Você também pode gostar