Upload
renan-sadao-rodrigues
View
215
Download
1
Embed Size (px)
DESCRIPTION
Metodo de EulerLinguagem Cmétodo numérico
Citation preview
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)
Do clculo, pode-se escrever que:
=
(1.2)
Da equao (1.2), encontra-se uma aproximao para:
(1.3)
Das equaes (1.1) e (1.3), encontra-se:
yn+1=yn+(xn+1-xn) f(xn,yn) (1.4)
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)
e
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
#include
#include
// 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
{
printf(" %f %f %f %f\n", t[i],w[i],j[i],err[i]);
}
return 0;
}
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.
N t w wi y
0 0 0,50000000 0,80000000 0,5
1 0,2 0,80000000 1,15200000 0,829299
2 0,4 1,15200000 1,55040000 1,214088
3 0,6 1,55040000 1,98848000 1,648941
4 0,8 1,98848000 2,45817600 2,12723
5 1 2,45817600 2,94981120 2,640859
6 1,2 2,94981120 3,45177344 3,179942
7 1,4 3,45177344 3,95012813 3,7324
8 1,6 3,95012813 4,42815375 4,283484
9 1,8 4,42815375 4,86578450 4,815176
10 2 4,86578450 5,23894141 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)
Grfico 2: Grfico comparativo soluo exta e por mtodo de Euler para y(t )=(t+1)2 - 0,5et.
0,00000000
1,00000000
2,00000000
3,00000000
4,00000000
5,00000000
6,00000000
0 1 2 3
Y
tempo t
Y(t)=(t+1)2 - 0,5et
Soluo Exata
Aproximao porMtodo de Euler
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.
N t w wi y
0 1 -1,00000000 -0,95 -1
1 1,05 -0,95 -0,9045354 -0,95238
2 1,1 -0,9045354 -0,8630071 -0,90909
3 1,15 -0,8630071 -0,8249169 -0,86957
4 1,2 -0,8249169 -0,7898476 -0,83333
5 1,25 -0,7898476 -0,7574466 -0,8
6 1,3 -0,7574466 -0,7274145 -0,76923
7 1,35 -0,7274145 -0,699495 -0,74074
8 1,4 -0,699495 -0,6734675 -0,71429
9 1,45 -0,6734675 -0,6491412 -0,68966
10 1,5 -0,6491412 -0,6263501 -0,66667
11 1,55 -0,6263501 -0,6049494 -0,64516
12 1,6 -0,6049494 -0,5848116 -0,625
13 1,65 -0,5848116 -0,5658248 -0,60606
14 1,7 -0,5658248 -0,5478898 -0,58824
15 1,75 -0,5478898 -0,5309184 -0,57143
16 1,8 -0,5309184 -0,5148323 -0,55556
17 1,85 -0,5148323 -0,4995613 -0,54054
18 1,9 -0,4995613 -0,4850426 -0,52632
19 1,95 -0,4850426 -0,4712197 -0,51282
20 2 -0,4712197 -0,4580416 -0,5
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.
-1,20000000
-1,00000000
-0,80000000
-0,60000000
-0,40000000
-0,20000000
0,00000000
0 0,5 1 1,5 2 2,5Y
tempo t
Y(t)=-1/t
Soluo Exata
Aproximao porMtodo de Euler
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