APOSTILA - 03 - Zero de Funções e Otimização

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 17

U N I V E R S I D A D E

UNIGRANRIO
Vá além da sala de aula !

Zeros de Funções e Otimização


Núcleo de Educação a Distância U N I V E R S I D A D E
www.unigranrio.com.br UNIGRANRIO
Rua Prof. José de Souza Herdy, 1.160 Vá além da sala de aula !
25 de Agosto – Duque de Caxias - RJ

Reitor
Arody Cordeiro Herdy

Pró-Reitor de Administração Acadêmica


Carlos de Oliveira Varella

Pró-Reitor de Pesquisa e Pós-graduação


Emilio Antonio Francischetti
Pró-Reitora Comunitária
Sônia Regina Mendes

Direção geral: Jeferson Pandolfo Desenvolvimento do material: Leonardo Tunala


Revisão: Laís Sá e Mariana Baptista Desenvolvimento instrucional: Josane Mittmann
Produção editoração gráfica: Magno Dal Magro

Copyright © 2018, Unigranrio


Nenhuma parte deste material poderá ser reproduzida, transmitida e gravada, por qualquer meio eletrônico,
mecânico, por fotocópia e outros, sem a prévia autorização, por escrito, da Unigranrio.
Sumário
Zeros de Funções e Otimização
Objetivos ........................................................................................... 4
Introdução ......................................................................................... 5
1. Zeros de Funções e Otimização .............................................. 6
1.1 Métodos Intervalares para se Obter Zeros Reais de Funções – Método
da Bisseção ......................................................................... 10
1.2 Métodos Abertos para se Obter Zeros Reais de Funções – Método de
Newton-Raphson .................................................................. 12
Síntese ............................................................................................. 16
Referências Bibliográficas .................................................................... 17
Objetivos
Ao final desta unidade de aprendizagem, você será capaz de:

▪▪ Converter modelos matemáticos e físicos em problemas numéricos;


▪▪ Resolver equações numéricas por meio de métodos intervalares
e abertos.

4 Métodos Computacionais em Engenharia


Introdução
Nesta unidade, aprenderemos como determinar os zeros e ótimos de
funções. A determinação dos zeros de uma função consiste na determinação de
suas raízes, e a otimização de uma função consiste na definição de seus valores
máximos e/ou mínimos. Os ótimos também são chamados de extremos, e
podem ser determinados simplesmente pelos zeros do modelo matemático
(equação diferencial), ou seja, o valor da variável independente quando a
primeira derivada é zero.

Existem dois tipos principais de métodos numéricos para determinação


de zeros e ótimos de funções: os métodos numéricos intervalares e os métodos
numéricos abertos. A determinação desses valores tem importantes aplicações
na engenharia. Por exemplo, quando o objetivo é reduzir os custos de produção
de um processo, devemos minimizar a função custo, ou seja, definir seu valor
mínimo. Um processo também possui sua função lucro, que nada mais é
que a função custo multiplicada por -1 (menos um); nesse caso, devemos
determinar seu valor máximo, ou seja, maximizar a função. As funções custo e
lucro são chamadas de funções objetivo.

Primeiramente, aprenderemos a determinar os zeros e ótimos de


uma função simples, entretanto, os métodos numéricos são importantes
para aplicações com funções mais complexas – por isso, os cálculos iterativos
estudados anteriormente também serão necessários aqui. Na segunda parte
desta unidade, estudaremos um método intervalar (método da Bisseção), e,
por fim, estudaremos um método aberto: o método de Newton-Raphson.

Métodos Computacionais em Engenharia 5


1. Zeros de Funções e Otimização
Vamos iniciar esta unidade aprendendo como determinar zeros e ótimos
de uma função simples.

A função abaixo possui uma variável dependente (f) à esquerda da


igualdade, que é função da variável independente (x), que está no lado direito
da equação:

f ( x) = 8 x - x 2

Para determinarmos os zeros dessa função, basta fazermos f(x) = 0 e


procedermos o cálculo de suas raízes. Substituindo na função, temos:

f ( x ) = 8 x − x 2 ⇒ 0 = 8 x − x 2 ⇒ 0 = (8 − x) x ⇒ x = 0 e x = 8
Como sabemos, as raízes de uma função são os valores de x, em que
f(x) é zero (e, por isso, elas são chamadas de zeros). Os zeros dessa função
são 0 e 8. Para determinarmos o valor de f máximo, primeiro, precisamos
determinar o valor de x em que f é máximo. Para isso, basta derivarmos a
função e igualarmos a derivada a zero e, assim, teremos o ponto em que a
curva é totalmente horizontal, correspondendo ao ponto máximo. A derivada
da função em relação à variável independente é:
df ( x)
= 8 - 2x
dx
Em seguida, igualando a derivada a zero, levando -2x para o lado
esquerdo da equação e resolvendo-a, temos:

df ( x) 8
= - 2x ⇒ 0
8= - 2x ⇒ 2x
8= ⇒ x =
8= 4
dx 2
Portanto, o valor de x, em que f é máximo, é 4; exatamente o ponto
médio entre 0 e 8. Dessa forma, determinamos o valor de x no ponto
máximo, determinando o “zero” da primeira derivada, ou seja, os ótimos são
os “zeros” da derivada à primeira. Para determinarmos o valor de f máximo,
basta levarmos x = 4 à função original, fazendo:
f ( x)
= 8 x - x 2 f (4) ⇒ 8(4) - (4) 2 ⇒=
f (4) 16

6 Métodos Computacionais em Engenharia


Sendo assim, o valor de f máximo é 16; portanto, o ponto máximo é
P(x,f(x)) = (4,16). A Figura 1 nos mostra o gráfico dessa função, bem como o
valor do máximo (ótimo) e zeros (raízes) indicados.
20
Máximo: X = 4 e f(x)=16
15

10 df(x)=0
dx
5
f(x) = 0
f(X) 0
Zero: x = 0 Zero: x = 8
-5

-10

-15

-20
-1 0 1 2 3 4 5 6 7 8 9
Figura 1: Gráfico da função f(x) = 8x - x2 contendo
X os zeros e o máximo indicado.
Fonte: Do autor.
Observe que essa função possui somente duas raízes (zeros), pois
trata-se de uma função de segunda ordem ou grau. Como sua derivada é uma
equação diferencial de primeira ordem, ela possui apenas um ótimo. Para
determinarmos se o valor ótimo é máximo ou mínimo, devemos calcular
a segunda derivada da função, em que x é ótimo, e verificarmos seu sinal.
Vejamos a segunda derivada da função:

d 2 f ( x) d 2 f (4)
=- 2 ⇒ =-2
dx 2 dx 2
Um sinal negativo de derivada à segunda (para x = 4) indica que a
concavidade da curva está direcionada para baixo e que o valor ótimo obtido
está acima, ou seja, trata-se de um valor de ponto máximo. Já um sinal positivo
de segunda derivada indicaria uma curva com concavidade para cima, e o ótimo

Métodos Computacionais em Engenharia 7


seria um valor ponto mínimo. Funções de ordem maior que dois apresentam
mais de um valor ótimo, ou seja, vários máximos e mínimos.

No exemplo estudado, a derivada à primeira corresponde ao que seria


o modelo matemático no exemplo do saltador, e a função original corresponde
ao que seria a solução exata. No exemplo do saltador (visto na unidade 1), a
simulação computacional era obrigatória para determinarmos o valor máximo
P(t,v(t)) do modelo matemático, pois não dispunhamos da solução exata antes
dos cálculos.

Para funções originais mais complicadas, o problema de determinar


zeros e ótimos analiticamente (“manualmente”) por meio do cálculo diferencial
torna-se mais complicado, e, em alguns casos, praticamente impossível.
Vejamos um exemplo de uma função original mais complicada:
1F ε / D 2,51 
−2, 0 . log 
= + 
F  3, 7 Re F 
Dê uma pausa nesta leitura e tente isolar a variável F dessa equação. Achou
difícil? A presença de F dentro da função logarítmica deixa o procedimento
relativamente complicado. A equação acima é chamada de equação de Colebrook
e é usada na determinação do fator de atrito (F) em problemas de escoamento
de fluidos. Esse é um importante exemplo da necessidade de determinação de
um zero – nesse caso, F – por meio de um método computacional.

Para usar um método computacional, precisamos representar a equação


de Colebrook na forma de uma função objetivo, bastando simplesmente
rearranjá-la:
−1 ε / D 2,51 
f (F ) = − 2, 0 . log  + 
F  3, 7 Re F 
ε
Sendo , D e Re constantes, determina-se o fator de atrito pela
determinação do zero dessa função objetivo f(F).

O Octave possui funções nativas (funções “prontas” incluídas no


pacote) que permitem a determinação de zeros e ótimos, mas essas funções
serão mostradas aqui apenas brevemente. A função nativa e especializada do
Octave, para determinar zeros, é a função fsolve(), e a função nativa similar
do MATLAB é fzero(). Dentro dos parênteses, informam-se os argumentos

8 Métodos Computacionais em Engenharia


ou entradas da função, que são: a expressão algébrica que representa a função
original (handle function) e um valor arbitrário inicial ou “chute inicial”. Antes
de usarmos a função fsolve(), precisamos informar a função original (handle
function). Vejamos:

>> f = @( x) 8* x - x ^ 2

Quadro 1: Função original de acordo com a sintaxe exigida pelo GNU OCTAVE.

O comando acima cria a expressão algébrica que corresponde à função


original da forma f(x) = 8x - x2. Observe que o Octave tem uma sintaxe
específica e, caso algum caractere seja equivocadamente digitado, o Octave
retorna um “erro”. Para determinar o zero, a função fsolve() deve ser usada logo
depois, como abaixo:

>> zero = fsolve( f ,5)


zero = 8.0000

Quadro 2: Uso da função fsolve() contendo suas entradas necessárias.

Perceba que o valor 5 é o valor inicial arbitrário. Observe que a função só


retorna o zero mais próximo do valor inicial, no caso 8. Se o valor inicial for 2,
a função retorna o zero mais próximo de 2, no caso 0 (zero). E quanto ao valor
de máximo? Para determinarmos o valor máximo, basta inserirmos a derivada
da função original como argumento (entrada) da função nativa fsolve(), pois o
valor do máximo nada mais é do que o “zero” da função derivada. Vejamos:

>> df = @( x) 8 - 2* x
>> max = fsolve(df , 2)
max = 4.0000

Quadro 3: Derivada da função original, de acordo com a sintaxe do GNU OCTAVE.

O retorno do zero mais próximo é uma característica dos métodos


computacionais para determinação de raízes que aprenderemos ao longo do

Métodos Computacionais em Engenharia 9


nosso estudo. Vamos determinar, nesta unidade, os zeros e ótimos de funções,
usando métodos numéricos.

1.1 Métodos Intervalares para se Obter Zeros Reais de Funções – Método


da Bisseção
Neste tópico, vamos abordar o método da Bisseção, um método
intervalar que determina a raiz da função dentro de um intervalo arbitrário.
Essa é justamente uma limitação do método, pois, para determinar a raiz
da função, é necessário que se conheça o intervalo certo antes dos cálculos.
Vejamos o método aplicado à função abaixo:

f ( x) = 5 x - 3 x 2

Vamos determinar a raiz dessa função entre os valores 1 e 2 para x.


Caso a raiz não esteja dentro desse intervalo, o método vai retornar 1 ou 2
como resultado, indicando que a verdadeira raiz está mais próxima de um
desses valores.

De acordo com esse método, o valor de x inferior é xl=1, e o valor


superior é xu=2. A primeira etapa é determinar o ponto médio desse intervalo:

xl + xu 1 + 2
=xr = = 1,5
2 2
Agora, temos dois intervalos candidatos a substituir o primeiro
intervalo de xl=1 e xu=2, são eles: xl=1, xr=1,5 e xr=1,5, xu=2. A raiz da função
estará entre um desses novos intervalos. Para saber em qual deles precisamos
fazer um teste substituindo os valores dos dois intervalos nas funções e
fazer as multiplicações, usamos: f(xl)f(xr) e f(xr)f(xu). O novo intervalo será
aquele que produzir um valor negativo no teste. Veja, a seguir, o resultado
do primeiro teste:

=f (1) 5(1)
= - 3(1) 2 2
=f (1,5) 5(1,5)
= - 3(1,5) 2 0, 75

10 Métodos Computacionais em Engenharia


O produto f(1)f(1,5) = 2 0,75 = 1,5 é positivo; logo, ele não será o
novo intervalo. Sabemos que o novo intervalo é o intervalo superior, mas
vamos confirmar fazendo os cálculos:
=f (1,5) 5(1,5)
= - 3(1,5) 0, 75
=f (2) 5(2)
= - 3(2) -2

O produto f(1,5)f(2) = 0,75(-2) = -1,5 é negativo, confirmando que esse


é o novo intervalo e que o zero da função está entre xl=1,5 e xu=2. Precisamos,
então, dividir o novo intervalo novamente e recomeçar todo o procedimento.

x1 + xu 1,5 + 2
=xr = = 1, 75
2 2
Vamos repetir o procedimento? A vantagem para a solução manual é
que já calculamos dois valores de intervalo. Veja:

=f (1,5) 5(1,5)
= - 3(1,5)2 0, 75
=f (1, 75) 5(1,
= 75) - 3(1, 75)2 - 0, 4375
=f (2) 5(2)
= - 3(2)2 -2

O produto f(1,5)f(1,75) = -0,3281 é negativo. Logo, já sabemos que o


novo intervalo é xl=1,5 e xu=1,75, e que o zero está entre esses dois valores.

Devemos prosseguir até determinarmos o zero positivo dessa função,


que é 1,6667 (a outra raiz é zero). Observe que, como o resultado é uma
dízima periódica, para parar os cálculos, precisamos de um critério de parada
ou prosseguiremos infinitamente. Para o critério de parada, podemos calcular
os erros relativos percentuais entre os valores de xr determinados em cada
etapa. Vejamos:

x(ri +1 ) − x(ri ) 1, 75 − 1,5


iteração 1: erro (=
1) ×100%
= ×100%
= 14, 29 %
x(ri +1 ) 1, 75

Vamos considerar, por exemplo, uma tolerância de 0,01 %. Nesse


caso, os cálculos não tardariam em parar e nos dariam o resultado com uma
precisão de quatro casas decimais. Observe que a vantagem do método é sua

Métodos Computacionais em Engenharia 11


simplicidade; entretanto, sua desvantagem está no fato de que ele precisa de
uma estimativa precisa de intervalo inicial. Além disso, seria necessário refazer
todo o procedimento para a determinação de outras raízes de funções de ordem
igual ou superior a dois.

Importante
Na análise numérica de problemas reais, é comum o uso de vários métodos numéricos
combinados, antes de qualquer decisão. Não se pode afirmar, com certeza, qual é o
melhor método, pois a desvantagem de um pode ser compensada pela vantagem de
outro. Por exemplo, um método aberto pode gerar um resultado que pode ser usado como
valor inicial de outro método; assim, a concordância entre vários métodos pode ser um
indício de que a resposta alcançada está correta. O uso de métodos combinados é possível
graças ao avanço da computação moderna, que concebeu computadores com capacidade
de processamento cada vez maior.

1.2 Métodos Abertos para se Obter Zeros Reais de Funções – Método de


Newton-Raphson
O método de Newton-Raphson é um método aberto, ou seja, não é
necessário definir um intervalo inicial, mas apenas um valor inicial. Vamos
usar esse método para determinar a raiz da função anterior, definindo um
valor inicial arbitrário para x, como sendo x(1) = 1. Para usarmos o método de
Newton-Raphson, precisamos da derivada da função – nesse caso: f’(x)=5-6x.
Com a função original e a derivada, usamos a fórmula abaixo:
f ( xi )
xi +1 = xi -
f ( xi )
Vamos a primeira etapa: substituir o valor inicial x(1) = 1 na função e
na derivada:
f (1) =5 (1) − 3 (1) = 2
2

f ' (1) =
5 − 6 (1) =−1
Depois, substituímos na fórmula:
2
xi +1 =1 − =1 + 2 =3
−1
12 Métodos Computacionais em Engenharia
Já podemos passar para a segunda etapa:
f ( 3) = 5 ( 3) − 3 ( 3) =
2
− 12
f ' ( 3) = 5 − 6 ( 3) = − 13
Na fórmula do método para encontrarmos o novo valor, temos:
−12
xi +1 =
3− 2, 08
=
−13
E assim por diante:
-2,56
=xi +1 2, 07 -
= 1, 734
-7, 46
-0,35
= xi +1 1,
= 734 - 1, 669
-5, 4
-0, 0127
= xi +1 1,
= 669 - 1, 6667
-5, 015
Observe que uma vantagem foi a convergência mais rápida a partir de
um valor inicial qualquer, isto é, a raiz foi determinada em poucos passos.
Uma desvantagem desse método é que ele precisa, obrigatoriamente, da
derivada da função, e algumas funções mais complexas são difíceis de derivar.
Para o critério de parada, podemos calcular os erros relativos entre os valores
de x determinados em cada passo. Vejamos:
x ( i + 1) − x ( i ) 3 −1
iteração 1: erro
= (1) = = 0, 6667
x ( i + 1) 3
x ( i + 1) − x ( i ) 2, 08 − 3
: erro ( 2 )
iteração 2= = = 0, 4493
x ( i + 1) 2, 08
x ( i + 1) − x ( i ) 1, 734 − 2, 08
iteração
= 3 : erro ( 3) = = 0,1938
x ( i + 1) 1, 734
x ( i + 1) − x ( i ) 1, 669 − 1, 734
iteração 4 : erro ( 4 ) = = = 0, 0389
x ( i + 1) 1, 669
x ( i + 1) − x ( i ) 1, 6667 − 1, 669
iteração
= 5 : erro ( 5 ) = = 0, 00138
x ( i + 1) 1, 6667
x ( i + 1) − x ( i ) 1, 66667 − 1, 6667
iteração
= 6 : erro ( 6 ) = = 0, 000018
x ( i + 1) 1, 66667

Métodos Computacionais em Engenharia 13


Para calcularmos o valor ótimo pelo método de Newton-Raphson,
precisamos da segunda derivada, que é f ’’(x)= -6. Nesse caso, o valor da
segunda derivada não mudará na fórmula ao longo das iterações, pois não é
função de x. A fórmula para determinar o valor ótimo é:

f '( xi )
xi +1 = xi -
f ''( xi )

A derivada à segunda deve ser diferente de zero, pois ela fica no


denominador. Podemos iniciar o procedimento com o valor inicial 1:

f ' (1)
xi +1 = 1 − 0,8333
=
−6
Já na primeira iteração, o método encontra o valor ótimo. A convergência
rápida é uma importante característica dos melhores métodos computacionais.
O valor ótimo encontrado é um máximo, pois a segunda derivada da função
produz um valor negativo.

Saiba Mais
O método de Newton-Raphson é baseado na busca da raiz pela
inclinação da curva no ponto xi. Esse ponto fornece uma estimativa
melhor de xi+1. Aprenda mais sobre esse método assistindo ao vídeo
indicado.
Assista agora

Para determinar a raiz da função pelo método de Newton-Raphson,


na linha de comando do Octave, digite os comandos abaixo na ordem que
aparecem:
>> f = @( x) 5* x - 3* x ^ 2
>> df = @( x) 5 - 6* x
>> x = 1;
>> x = x - f ( x) / (df ( x))
Quadro 4 - Comandos para executar o método de Newton-Raphson.

14 Métodos Computacionais em Engenharia


Recupere o último comando (fórmula de Newton-Raphson) com a seta
direcional para cima do teclado e tecle enter novamente, e assim por diante.
Você verá os valores de x se alterando desde x = 1 até a raiz (zero) 1,6667.

Abaixo, temos um código escrito Octave para o método de


Newton-Raphson:

1 - %%% método de Newton-Raphson


2 - clear all %% limpa todas as variáveis antes de começar
3-
4 - f = @(x) 5*x - 3*x^2; %% função original
5 - df = @(x) 5 - 6*x; %% primeira derivada da função original
6-
7 - tol = 0.0001; %% valor de tolerância admitido;
8-
10 - x(1) = 1; %% condição inicial de x
11 - for i=1:1000 %% início do laço de repetição (for) para muitos valores de i
12 -
13 - x(i+1) = x(i) - f(x(i))/(df(x(i))); %% fórmula do método de Newton-Raphson
14 -
15 - erro = abs((x(i+1) - x(i))/(x(i+1))); %% calcula o erro
16 -
17 - if erro <= tol %% compara o erro com a tolerância
18 - break %% comando que encerra os cálculos caso seja verdadeiro
19 - else
20 - end
21 -
22 - end %% fim do laço de repetição (for)
23 - disp(x(i+1)); %% mostra o valor da raiz na linha de comando
24 -

Quadro 5 - Código escrito em Octave para o método de Newton-Raphson.

Métodos Computacionais em Engenharia 15


Síntese
As funções algébricas, possuem zeros e ótimos (máximos e
mínimos). Essas funções possuem raízes (zeros) tocando no eixo das
abscissas (horizontal), exatamente onde seu valor no eixo das coordenadas
(vertical) é zero, ou seja, onde f(x) = 0. A derivada à primeira de equações
algébricas fornece os valores ótimos nos pontos em que a derivada for igual
a zero (no ponto máximo ou no mínimo).

Existem dois tipos de métodos numéricos com esse objetivo: os


métodos intervalares e os métodos abertos. Os métodos numéricos para
determinação de zeros e ótimos são usados, normalmente, em conjunto,
antes da tomada de qualquer decisão. Conhecendo os valores ótimos, os
engenheiros podem determinar as condições operacionais que otimizam
os processos, ou seja, que minimizam os custos e maximizam os lucros,
obviamente, dentro de todas as restrições ambientais e de segurança
exigidas pela legislação. As funções algébricas que representam os custos
ou os lucros de um processo, são comumente chamadas de funções objetivo.

16 Métodos Computacionais em Engenharia


Referências Bibliográficas
CHAPRA, Steven C. Métodos numéricos aplicados com Matlab para
engenheiros e cientistas. 3 ed. São Paulo: Mcgraw Hill, 2013.

______; CANALE, R. P. Métodos numéricos para engenharia. 5 ed. São


Paulo: Mcgraw Hill, 2011.

MATEMÁTICA BASE. Método de Newton-Raphson - Vídeo 01 -


Demonstração e Exemplo. Disponível em: https://www.youtube.com/
watch?v=Yx90nD1qonU. Acesso em: 06 fev. 2018.

QUARTERONI, A.; SALERI, F. Cálculo científico com MATLAB e


Octave. Milano: Springer, 2007.

Métodos Computacionais em Engenharia 17

Você também pode gostar