You are on page 1of 8

RELATRIO 4

IM253 MTODOS NUMRICOS em FENMENOS de TRANSPORTE

Mtodo de Euler

1. Objetivo
Este trabalho tem como objetivo desenvolver um cdigo com para o Mtodo de Euler. Para tal, ser
testado dois exemplos de funes retirados do livro texto do curso Anlise Numrica (Richard L.
Burden e J.Douglas Faires). Sendo eles:

Funo 1: y(t )=(t+1)2 - 0,5et


Funo 2 : y(t)=-1/t

2. Introduo
Interpolao
O mtodo de Euler, tambm conhecido como mtodo da reta secante, um dos mtodos mais antigos
que se conhece para a soluo de equaes diferenciais ordinrias, porm raramente utilizada.
Problemas prticos no devem ser resolvidos com o mtodo de Euler. Existem outros mtodos que
proporcionam resultados com uma melhor preciso e estabilidade se comparados ao mtodo de Euler
para o mesmo passo.
Seja uma funo

= (, ) , com a condio de contorno y = yn quando x = xn . Da Figura 1,

observa-se que o valor de yn+1 , em x = xn+1, dado por:


+1 = +

(1.1)

(1.2)

Do clculo, pode-se escrever que:


=

Da equao (1.2), encontra-se uma aproximao para:

(1.3)

yn+1=yn+(xn+1-xn) f(xn,yn)

(1.4)

Das equaes (1.1) e (1.3), encontra-se:

Na Figura 1, observa-se que quanto menor o valor da diferena entre xn+1 e xn (desprezando os erros
causados pela representao finita dos nmeros pelos computadores), menor o erro da estimativa para
yn+1. Todavia, o nmero de computaes para um intervalo aumenta medida que a diferena entre
xn+1e xn reduzida. Define-se o passo h como sendo igual a:
h=xn+1-xn

(1.5)

Usando a equao (1.5) nas equaes (1.5) e (1.4), tem-se:


xn+1=xn+h

(1.6)

yn+1=yn+hf(xn,yn)

(1.7)

Sendo a equao completa, levando em consierao o erro do mtodo igual a:

+1 = + (, ) +

2
()
2

(1.8)

A equao (1.8) conhecida como frmula de Euler. A soluo de uma equao diferencial pelo
mtodo de Euler realizada pelo uso recursivo das equaes (1.6) e (1.7), usando as condies de
contorno x0 e y0 . O erro no mtodo de Euler da ordem de O (h2 ).

Figura 1: Ilustrao do mtodo de Euler.

3. Algoritmos
1) INICIO
2) ENTRADA extremidades a,b; nmero inteiro N; condio inicial alfa;
3) FAA h=(b-a)/N;
t=a;
w=alfa;
4)PARA i variando de 1 at N, execute os passos
5)
t=a+ih
6) PARE
7) SADA aproximao de w e y nos (N+1) valores de t

4. Programa C
Mtodo de Euler
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Implementao Mtodo de Euler
// Autor: Renan Sadao Kuroda Rodrigues
// Disciplina: Mtodos Numricos em Fenmenos de Transporte
// Funo de aproximao pelo mtodo de Euler
float f (float x, float v)
{
return 1/(v*v)-(x/v)-(x*x);
}

// Funo da soluo exata


float g (float u)
{
return -1/u;
}
int main()
{
// n: nmero de inteiro N
// x[]: vetor para armazenar os valores de x
// a e b: extremidades
// h[]: tamanho do passo
// alpha[]: condio inicial
int n,i;
float a,b,c,h,alfa;
char passo;
// Inserir os quantos pontos sero utilizados
printf("\n Metodo de Euler \n");
printf("\n Digite o intervalo a e b (ex. [0;5] = digite 0 5): ");
scanf("%f %f",&a,&b);
printf("Digite o numero de pontos da malha: ");
scanf("%d",&n);
printf("Digite condicao inicial: ");
scanf("%f",&alfa);
// Cria um vetor para os valores dos pontos
float w[n],t[n],alpha[n],v[n],j[n],err[n];
// Inicializa o passo h, tempo t0 e w0
h=(b-a)/n;
t[0]=a;
w[0]=alfa;
// Lao formar o tempo
for (i=0; i<=n; i=i+1)
{
t[i]=a+i*h;
}
// Lao para avanar a soluo no tempo
for (i=0; i<=n; i=i+1)
{
w[i+1]=w[i]+h*f(w[i],t[i]);
j[i]=g(t[i]);
err[i]=j[i]-w[i];
}
// Impresso dos pontos que sero utilizados
puts (" \n t
w
y
for (i=0; i<=n; i=i+1)

err\n");

{
printf(" %f
}
return 0;

%f

%f

%f\n", t[i],w[i],j[i],err[i]);

5. Resultados e Discurses
Para a resoluo da aproximao pelo mtodo de Euler, foi realizado primeiramente uma tabela em
EXCEL para verificar a exatido do cdigo. As tabelas 1 e 2 apresentam os valores do nmero de
pontos, o tempo, os valores da aproximao w e wi, sendo este referente ao tempo t+1, e o valor real
da funo y.
Tabela 1: Anlise Numrica do problema 1.

wi

0
1
2
3
4
5
6
7
8
9
10

0
0,2
0,4
0,6
0,8
1
1,2
1,4
1,6
1,8
2

0,50000000
0,80000000
1,15200000
1,55040000
1,98848000
2,45817600
2,94981120
3,45177344
3,95012813
4,42815375
4,86578450

0,80000000
1,15200000
1,55040000
1,98848000
2,45817600
2,94981120
3,45177344
3,95012813
4,42815375
4,86578450
5,23894141

0,5
0,829299
1,214088
1,648941
2,12723
2,640859
3,179942
3,7324
4,283484
4,815176
5,305472

O grfico 1 demostra como a curva gerada pela aproximao do mtodo se distncia medida que o
tempo avana. Segundo Richard Burden, o erro aumenta ligeiramente conforme o valor de t aumenta,
devido ao truncamento no erro de segundo grau da equao diferencial (1.8)

Y(t)=(t+1)2 - 0,5et
6,00000000
5,00000000

4,00000000

Soluo Exata

3,00000000
2,00000000

Aproximao por
Mtodo de Euler

1,00000000
0,00000000
0

tempo t

Grfico 2: Grfico comparativo soluo exta e por mtodo de Euler para y(t )=(t+1)2 - 0,5et.

As figuras 3,4 e 5 demonstram como o tamanho do passo h est relacionado com o erro do mtodo.
Conforme o passo aumentando, notou-se uma melhora no erro real das funes. O que esperado,
pois com o aumento do nmero de pontos da malha, a reta da secante tende a se aproximar mais das
curvas da funo exata.

Figura 3: Sada do cdigo Mtodo de Euler h=0,2.


Tabela 2: Anlise Numrica para Y(t)=-1/t.

wi

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

1
1,05
1,1
1,15
1,2
1,25
1,3
1,35
1,4
1,45
1,5
1,55
1,6
1,65
1,7
1,75
1,8
1,85
1,9
1,95
2

-1,00000000
-0,95
-0,9045354
-0,8630071
-0,8249169
-0,7898476
-0,7574466
-0,7274145
-0,699495
-0,6734675
-0,6491412
-0,6263501
-0,6049494
-0,5848116
-0,5658248
-0,5478898
-0,5309184
-0,5148323
-0,4995613
-0,4850426
-0,4712197

-0,95
-0,9045354
-0,8630071
-0,8249169
-0,7898476
-0,7574466
-0,7274145
-0,699495
-0,6734675
-0,6491412
-0,6263501
-0,6049494
-0,5848116
-0,5658248
-0,5478898
-0,5309184
-0,5148323
-0,4995613
-0,4850426
-0,4712197
-0,4580416

-1
-0,95238
-0,90909
-0,86957
-0,83333
-0,8
-0,76923
-0,74074
-0,71429
-0,68966
-0,66667
-0,64516
-0,625
-0,60606
-0,58824
-0,57143
-0,55556
-0,54054
-0,52632
-0,51282
-0,5

Y(t)=-1/t
0,00000000
0

0,5

1,5

2,5

-0,20000000
-0,40000000
Y

Soluo Exata
-0,60000000
Aproximao por
Mtodo de Euler

-0,80000000
-1,00000000
-1,20000000

tempo t

Grfico 2: Grfico comparativo soluo exta e por mtodo de Euler para y(t)=-1/t

Figura 4: Saida do cdigo

6. Concluso
Atravs da realizao deste trabalho, pode-se concluir que o mtodo de Euler um mtodo simples de
ser implementado, porm pouco utilizado devido seu erro de segunda ordem O(h2). Alm disso,
percebeu-se uma relao entre o tamanho do passo h e a reduo do erro real, no qual quanto menor
for o passo de tempo h, menor ser o erro real.

7. Referncia
[1] - Burden, Richard L. and Faires, J.Doulas - Analise numrica traduo 8aed norte americana. Ed
Cengage Learning.
[2] Guidi, Leonardo F. Material Graduo Pgina da disciplina "Noes de Clculo Numrico"
MAT01186 (http://www.mat.ufrgs.br/~guidi/grad/MAT01169/calculo_numerico.pdf) Acessado em
22/03/2015