Exercícios Resolvidos de Otimização

Ver Teoria

Enunciado

Como achar o mínimo da função y = 2 x + 5 x ² + 5 com f m i n s e a r c h ?

Passo 1

O enunciado nos dá uma função e pede para encontrarmos o mínimo dela usando a função de otimização do MATLAB f m i n s e a r c h .

A primeira coisa que devemos entender bem antes de atacar o exercício é qual é o problema de otimização. Para isto, devemos ter muito claro:

  • “O que eu quero minimizar?”, definindo a função objetivo;
  • “O que eu quero minimizar depende do quê?”, definindo as variáveis de projeto.

O que queremos minimizar é a função dada no enunciado: queremos encontrar o valor mínimo de y . Logo, a função y = 2 x + 5 x ² + 5 é a função objetivo do problema de otimização.

A função do enunciado depende de x . Logo, a variável de projeto é x .

Em outras palavras, queremos encontrar o valor de x que dê o menor y possível.

Passo 2

Antes de partir para o MATLAB, vamos relembrar como é a função f m i n s e a r c h :

x   =   f m i n s e a r c h ( @ f u n ç ã o , x 0 )

Precisamos fornecer a ela no mínimo duas entradas:

  • @ f u n ç ã o : uma função representando a função objetivo;
  • x 0 : um vetor contendo um “chute” inicial das variáveis de projeto.

A saída de f m i n s e a r c h é um vetor x contendo os valores das variáveis de projeto que minimizam a função objetivo.

A primeira coisa que vamos fazer é entrar no MATLAB a função dada no enunciado. Em um script novo, crie uma função contendo a equação y = 2 x + 5 x ² + 5 :

Chamei a função que contém a função objetivo de f _ o b j , mas você pode chamar do que quiser. f _ o b j tem como entrada a variável x , que é a variável de projeto do problema de otimização. A saída de f _ o b j é a variável y , que é o que queremos minimizar.

Após criar um script com a função objetivo, vamos implementar a f m i n s e a r c h . Em um novo script, salvo na mesma pasta onde está o script da função f _ o b j , digite as linhas de código:

Na primeira linha, entramos com o “chute” inicial da variável x , armazenado na variável x 0 . Escolhi x 0 = 1 , mas você pode adotar outro valor.

Na segunda linha, usamos f m i n s e a r c h . Para indicar a função objetivo em f m i n s e a r c h , usamos o nome da função criada com a função objetivo com um @ na frente. Por isso a primeira entrada de f m i n s e a r c h , neste caso, é @ f _ o b j (caso tenha dado um nome diferente, não esqueça de trocar!). O algoritmo de otimização por trás de f m i n s e a r c h vai procurar o mínimo da função objetivo, isto é, o menor valor possível de y , partindo de x 0 .

A saída de f m i n s e a r c h é a variável x com o valor de x que dá o menor y possível.

Vamos rodar o programa para ver o que o f m i n s e a r c h vai retornar:

O valor de x que dá o menor y possível na função y = 2 x + 5 x ² + 5 é x = - 0,2 .

Passo 3

Para ver qual é o valor mínimo de y , acrescente no código o comando:

Com este comando, calculamos y usando a função f _ o b j , tendo como entrada a saída de f m i n s e a r c h .

Rodando o programa, temos:

Logo, o menor valor possível de y na função y = 2 x + 5 x ² + 5 é y = 4,8 , obtido quando x = - 0,2 .

Passo 4

Uma coisa legal de ver é se o mínimo encontrado pelo f m i n s e a r c h é o mesmo mínimo que encontramos quando procuramos o ponto de mínimo no gráfico da função.

Para entendermos o motivo, vamos plotar o gráfico de y = f ( x ) .

Em um novo script, para plotar y = 2 x + 5 x ² + 5 , digite as linhas de código:

Na primeira linha, criamos um vetor x que vai de - 5 a 5 , com um passo de 0,1 . Esse vetor vai ser o eixo horizontal do gráfico.

Na segunda linha, calculamos y = 2 x + 5 x ² + 5 para cada elemento do vetor x e armazenamos os resultados no vetor y . O vetor y será o eixo vertical do gráfico.

Na terceira linha, o gráfico de y = 2 x + 5 x ² + 5 é gerado.

Executando o programa, temos o gráfico de y = 2 x + 5 x ² + 5 :

Podemos encontrar no gráfico as coordenadas do ponto mínimo da função, clicando nele (como na figura acima). Veja que são exatamente x = - 0,2 e y   =   4,8 , dando o mesmo resultado de f m i n s e a r c h .

Resposta

As coordenadas do mínimo da função y = 2 x + 5 x ² + 5 é x = - 0,2 e y   =   4,8 .