Sei sulla pagina 1di 14

UNIVERSIDADE ESTADUAL DE CAMPINAS

FACULDADE DE ENGENHARIA MECÂNICA

DEPARTAMENTO DE ENGENHARIA TÉRMICA E FLUIDOS

RELATÓRIO DA DISCIPLINA DE MÉTODOS NUMÉRICOS EM


FENÔMENOS DE TRANSPORTE

Desenvolvimento de um algoritmo do método de Euler para solução de equações


diferencias homogêneas

Aluno: Max William Frasão Reis

Ra: 164299

Campinas, 2016
SUMÁRIO

1 INTRODUÇÃO ........................................................................................................................ 3
1.1 OBJETIVO ............................................................................................................................ 3
2 REFERENCIAL TEÓRICO ................................................................................................... 4
2.1 Visão geral de métodos numéricos para solução de EDO de primeira ordem ................ 4
2.2 Método de Euler .................................................................................................................... 5
3.1 Teste do programa para a primeira equação ..................................................................... 7
3.2 Teste do programa para a segunda equação....................................................................... 8
3.3 Teste do programa para a terceira equação ....................................................................... 9
4 CONSIDERAÇÕES FINAIS ................................................................................................ 12
REFERENCIAS ........................................................................................................................ 13
ANEXOS .................................................................................................................................... 14
3

1 INTRODUÇÃO

Equações diferenciais ordinárias (EDO) ocorrem com muita frequência na


descrição de fenômenos da natureza. De acordo com Gilat e Subramaniam (2008),
Equação diferencial é o nome dado à uma equação que contem derivadas de uma função
desconhecida Segundo Burden e Faires (2013), as equações diferencias são usadas para
modelar problemas em ciências e engenharias que envolvam a alteração de algumas
variáveis com relação a outra. A solução de uma EDO é uma função que satisfaz à
equação. Na maioria dos casos, os problemas existentes requerem uma solução de um
problema, ou seja, uma solução que satisfaça determinada condição inicial (Burden e
Faires, 2013). Uma EDO de primeira ordem tem a forma:

dy
 f ( x, y), com a condição inicial: y ( x0 )  y 0 Eq.1
dx

Há vários métodos que resolvem analiticamente uma EDO, entretanto nem


sempre é possível obter uma solução analítica. Neste caso, os métodos numéricos podem
ser utilizados para encontrar uma solução aproximada (Valle, 2012).

A solução analítica de uma EDO de primeira ordem é uma expressão


matemática da função y(x) que satisfaz a equação diferencial e inclui o valor y(x 1) = y1
uma vez conhecida a função y(x), pode-se calcular o seu valor em qualquer x. Já a soluçãp
numérica de uma EDO igual a Eq. 1 é formada por um conjunto de pontos discretos que
representam a função y(x) de maneira aproximada (Gilat e Subramaniam, 2008).

1.1 OBJETIVO

O objetivo deste trabalho é desenvolver um algoritmo que resolva uma


equação diferencial ordinária utilizando o método de Euler mostrando sua eficiência e
praticidade para resolução desta.
4

2 REFERENCIAL TEÓRICO

2.1 Visão geral de métodos numéricos para solução de EDO de primeira ordem

Denomina-se solução numérica o procedimento empregado no cálculo de


uma estimativa para solução associada a um conjuntos de pontos discretos. O processo
de solução é incremental, o que significa que ele é determinado por passos. Há
procedimentos que envolvem passos simples e outros que consideram uma abordagem
multipasso. Existem dois tipos de métodos para cálculo da solução em cada passo
denominados: explícitos e implícitos (Gilat e Subramaniam, 2008). Os métodos
explícitos são aqueles que usam uma fórmula explícita para o cálculo da variável
dependente no próximo valor da variável independente, em outras palavras, o próximo
valor não conhecido da variável dependente y i 1 é calculado a partir de uma expressão
na forma:

yi 1  f ( xi , xi 1 , yi ) Eq. 2

onde xi , yi , xi 1 são parâmetros conhecidos.

Já se tratando dos implícitos, a equação utilizada para calcular y i 1 a partir


dos valores conhecidos xi , yi , xi 1 tem a forma:

yi 1 f ( xi , xi 1 , yi 1 ) Eq.3

O métodos implícitos são mais precisos que os métodos explícitos. Devido


a isto, os métodos implícitos requerem um maior esforço computacional em cada passo
de integração.

Para melhor visualização, a solução numérica de uma equação diferencial


igual a Eq.1 é mostrado logo abaixo na Figura 1.

Figura 1 – Solução de uma EDO do tipo y '  f ( x, y ) com condição inicial y ( x0 )  y 0

Fonte: Lobão, (2015).


5

2.2 Método de Euler

dy
Seja a solução de uma equação diferencial do tipo:  f ( x, y) com valor
dx
inicial y ( x0 )  y 0

O método de Euler, também chamado de método de Euler progressivo, é uma


técnica de passos simples usada para resolver EDOs de primeira ordem.

Figura 2 – Ilustração do método explícito de Euler

Fonte: Gilat e Subramaniam, 2008.

O método de Euler assume que, em uma pequena passo h na vizinhança de


xi , y i , a função y(x)tem inclinação constante e igual à inclinação em ( xi , y i ). A partir
dessa hipótese, o próximo ponto da solução numérica ( xi 1 , y i 1 ) é calculado usando:

xi 1  xi  h Eq.4

yi 1  yi  f ( xi , yi )h Eq.5
6

3 METODOLOGIA

O objetivo do algoritmo do método de Euler é uma aproximação da solução


do problema de valor inicial.

dy
 f (t , y), a  t  b, y (a)   Eq.6
dt

Aproximações de y serão geradas em vários valores, chamados de pontos de


malha, no intervalo [a,b]. Essa condição é assegurada por meio da escolha de um número
inteiro positivo N e pela seleção dos pontos das malha:

t i  a  ih para cada i = 0,1,2,3 ,....., N

O método de Euler constrói i  y (t i ), para cada i = 0,1, 2,...,N excluindo o resto. Assim
o método de Euler fica:

0   ,

i 1  i  hf (t i , i ), para cada i = 0,1,....., N – 1.

Figura 3 – pseudocódigo do método de Euler

Fonte: Burden e Faires, 2013


7

3.1 Teste do programa para a primeira equação

Para este teste foi utilizado o exemplo 1 do livro do Burden e Faires da


página 248 para a seguinte equação:

y '  y  x 2  1, 0  x  2, y(0)  0.5

O usuário terá que entra com o número de interações N que neste caso
correspondeu a 10 e os valores de a e b (valor inicial e final do intervalo de x).

Figura 4 – Resultados gerados do programa para o 1º teste

Fonte: Autoria própria, 2016.

Figura 5 – Gráfico gerado a partir dos valores obtidos (Fig. 4)

Fonte: Autoria própria, 2016 (winplot).


8

Tabela 1 – Valores gerados pelo algoritmo, valores reais e o erro correspondente

ti wi y(ti) y(ti)-wi
0 0,5 0,5 0
0,2 0,8 0,829286 0,029286
0,4 1,152200007 1,2140877 0,061888
0,6 1,55040014 1,6489406 0,09854
0,8 1,98848021 2,2172295 0,228749
1 2,45817637 2,6408591 0,182683
1,2 2,944981170 3,1799415 0,23496
1,4 3,45177412 3,7324000 0,280626
1,6 3,95012903 4,2834838 0,333355
1,8 4,42815495 4,8151763 0,387021
2 4,86578608 5,30554720 0,439761
Fonte: Autoria própria, 2016 (EXCEL,2013).

3.2 Teste do programa para a segunda equação

Para o teste 2 foi utilizado o exemplo 8-1 do livro do Gilat e Subramaniam


da página 334 para a seguinte equação:

y '  1,2 y  7e 0,3 x , 0  x  2,5, y(0)  3 , neste caso o valor de N é igual a 5.

Figura 6 – Resultados gerados do programa para o 2º teste

Fonte: Autoria própria, 2016.


9

Figura 7 – Gráfico gerado a partir dos valores obtidos (Fig. 6)

Fonte: Autoria própria, 2016 (winplot).

Tabela 2 – Valores gerados pelo algoritmo, valores reais e o erro correspondente

t wi y(ti) y(ti)-wi
0 3 3 0
0,5 4,69999981 4,072 -0,628
1 4,89247799 4,323 -0,56948
1,5 4,54985476 4,17 -0,37985
2 4,05164051 3,835 -0,21664
2,5 3,54149675 3,436 -0,1055
Fonte: Autoria própria, 2016 (EXCEL,2013).

3.3 Teste do programa para a terceira equação

Para este teste foi utilizado o exemplo 7.1 do livro do Campos na página
326 para a seguinte equação:

y '  2 y  x  1, 0  x  1, y (0)  1 , para N igual a 10


10

Figura 8 – Resultados gerados do programa para o 3º teste

Fonte: Autoria própria, 2016.

Figura 9 – Gráfico gerado a partir dos valores obtidos (Fig. 8)

Fonte: Autoria própria, 2016 (winplot).


11

Tabela 3 – Valores gerados pelo algoritmo, valores reais e o erro correspondente

t wi y(ti) y(ti)-wi
0 1 1,000 0,000
0,1 0,899999976 0,914 0,014
0,2 0,8299999983 0,8527 0,023
0,3 0,783999979 0,8116 0,028
0,4 0,757200003 0,787 0,030
0,5 0,745760024 0,7759 0,030
0,6 0,746608019 0,7759 0,029
0,7 0,757286429 0,7849 0,028
0,8 0,775829136 0,8014 0,026
0,9 0,800663292 0,824 0,023
1 0,830530643 0,8515 0,021
Fonte: Autoria própria, 2016 (EXCEL,2013).
12

4 CONSIDERAÇÕES FINAIS

De acordo com os dados obtidos pelo algoritmo desenvolvido, foi possível


provar que este foi bem eficiente mostrando coerência em seus resultados. Pode-se
perceber que a medida que o valor de N (interações) crescia o valor dos erros aumentava,
isso pode ser explicado devido ao fato que a cada ponto calculado o erro deste é
transportado para o próximo valor, sendo assim, no próximo ponto, o valor do erro
aumenta devido ao erro atrelado deste ponto com o erro do valor anterior. Mesmo com
essa particularidade, o método de Euler mostrou-se bem eficaz servindo de introdução
para os outros métodos mais precisos, desta forma atingindo de forma satisfatória o
objetivo deste trabalho.
13

REFERENCIAS

BURDEN, Richard L., FAIRES, J. Douglas, Numerical Analysis, nine edition.

CAMPOS, F., F., Algoritmos Numéricos, Segunda Edição.

CESAR, D., L., Introdução aos métodos numéricos, 2016, Universidade estadual de
Fluminense.

VALLE, K. F., Métodos Numéricos de Euler e Runge Kutta, 2012, Universidade


Federal de Minas Gerais, Monografia.
14

ANEXOS

program Met_Euler

implicit none

integer :: n,i

real :: a,b,h,t,ALFA,w,f

print *, 'METODO DE EULER PARA SOLUCAO DE E.D.O'

print *, 'Entre com o numero de interacoes (n)'

read *, n

print *, 'Entre com os valores do intervalos (t:[a b])'

read *, a,b

print *, 'Entre com o valor inicial ALFA'

read *, ALFA

print *, ' Valores de (t) Valores de (w)'

t=a

h = (b-a)/n

w = ALFA

print *, t,w

do i = 1,n

f = -1.2*w+7*exp(-0.3*t)

w = w + h*f

t = a+i*h

print *, t,w

end do

end program Met_Euler

Potrebbero piacerti anche