Escolar Documentos
Profissional Documentos
Cultura Documentos
dy(t)
= f (t, y(t)) t > t0
dt (1)
y ( t0 ) = y0
onde t é a variável independente, y é a variável dependente, t0 é um valor
definido da variável independente (geralmente zero), y0 é um valor conhecido
da variável dependente quando t = t0 , e f (t, y(t)) é uma função algébrica
qualquer das variáveis dependente e independente† . Abaixo alguns exemplos
de PVIs na forma da Equação 1:
†O que é interessante e atrativo na abordagem numérica de solução de PVIs é que a
dificuldade de solução não é sensível à forma da função f (t, y(t)), muito diferente do que
acontece com a abordagem analítica.
1
a)
dy(t)
=3 t>0
dt
y (0) = 2
b)
dy(t)
= 2t3 t>1
dt
y(1) = 20
c)
dy(t)
= −3y(t)2 t>0
dt
y(0) = 10
d)
dy(t)
= − y ( t ) + t3 t>0
dt
y (0) = 1
e)
dy(t) h it
= − e − y ( t ) + t3 t>0
dt
y(0) = 100
( t − t0 )2 ( t − t0 )3
y(t) = y(t0 ) + y0 (t0 )(t − t0 ) + y00 (t0 ) + y000 (t0 ) + ... (2)
2 3!
Estimar o valor de y de forma direta pela substituição do valor desejado de
t na Eq. 2 não é algo tão trivial, principalmente de esse valor não for próximo
de t0 . Primeiramente precisaríamos obter de forma analítica as expressões
de y00 (t), y000 (t), e assim por diante para avaliá-los em t = t0 . Em seguida, o
valor de y(t) deveria ser estimado com um número suficientemente grande de
termos da série (quanto maior o valor de t, mais termos seriam necessários).
Estes inconvenientes são a força motriz para o desenvolvimento dos métodos
numéricos para solução de PVIs a partir de simplificações da série de Taylor.
2
Método explícito de Euler
Para deduzirmos o método explícito de Euler, consideremos que o valor de t
para o qual desejamos estimar y(t) é próximo de t0 . Neste caso, espera-se que
a aproximação linear da solução original (série de Taylor com 2 termos) seja
suficientemente boa. Isso é ilustrado na Figura 1.
Figura 1 - Comparação entre uma função qualquer (curva azul) e suas séries
de potências truncadas após o 2º (reta amarela) e 3º termo(curva laranja).
3
linear da série de Taylor (Eq. 3) gerará sempre um erro na estimativa de y(t). É
possível observar na Figura 1 que o erro (distância entre curvas amarela e azul)
é pequeno para valores pequenos de (t − t0 ), mas aumenta significativamente
conforme (t − t0 ) aumenta. É por essa razão que não devemos estimar um
valor de y para um valor de t muito distante de t0 em uma única etapa.
Substituindo na Eq. 3:
Como o valor de y(t2 ) acima foi estimado após uma primeira estimativa
de y(t1 ), dizemos que y(t2 ) foi estimados com dois passos. Podemos agora
escrever as equações 6 e 7 de uma forma mais geral, onde a variável inde-
pendente é identificada com um subíndice que significa o número de passos
dados para se atingir o valor atribuído à variável naquele ponto:
y ( t0 ) = y0 ;
y ( t1 ) = y1 ;
y ( t2 ) = y2 ;
† Perceba que caso a série fosse truncada após o terceiro termo, já não teríamos de forma
tão direta o valor de y00 (t0 ).
4
..
.
y(tn ) = yn ;
y ( t n +1 ) = y n +1 .
Temos então, finalmente, a fórmula do método explícito de Euler em sua
forma mais utilizada:
y n +1 = y n + h · f ( t n , y n ) (10)
t n +1 = t n + h (11)
Exemplo 1:
dy(t)
= t2 − y ( t ) t>0
dt
y (0) = 1
Solução:
N = 3,
tN = 3 ,
t0 = 0 ,
t N − t0 3−0
h= = = 1.
N 3
O primeiro valor da variável dependente é sempre dado pela condição
inicial:
y0 = 1.
Resta agora definir a função f (tn , yn ), que já nos é fornecida no enunciado:
f (tn , yn ) = t2n − yn
5
Podemos então agora apresentar os resultados na forma de uma tabela
com N + 1 linhas:
n tn yn f (tn , yn )
0 0 1
1
2
3
n tn yn f (tn , yn )
0 0 1
1 1
2 2
3 3
f (t0 , y0 ) = t20 − y0 = 0 − 1 = −1
Portanto:
n tn yn f (tn , yn )
0 0 1 −1
1 1
2 2
3 3
Agora sim usamos a fórmula do método explícito de Euler (Eq. 10) para
encontrar o próximo valor de y:
y n +1 = y n + h · f ( t n , y n )
y1 = y0 + h · f ( t0 , y0 )
y1 = 1 + 1 · (−1)
y1 = 0
6
n tn yn f (tn , yn )
0 0 1 −1
1 1 0
2 2
3 3
f (t1 , y1 ) = t21 − y1 = 1
e
y2 = y1 + h · f ( t1 , y1 ) = 1
n tn yn f (tn , yn )
0 0 1 −1
1 1 0 1
2 2 1
3 3
n tn yn f (tn , yn )
0 0 1 −1
1 1 0 1
2 2 1 3
3 3 4
Perceba que a palavra "estimado" implica que essa não é a solução exata
do problema de valor inicial. De maneira geral, problemas de engenharia
envolvem soluções estimadas, e não há muito o que se possa fazer quanto a
isso. A pergunta que devemos nos fazer nesses casos é: "A estimativa feita é
boa?". Veja que essa pergunta não pode ser respondida a menos que tenhamos
uma ideia do valor de erro associado a essa estimativa. Para entendermos
como é possível estimar esse erro, verifique novamente a Figura 1 e as Eqs. 3 e
4. A Eq. 3 representa a curva amarela, enquanto que a Eq. 4 representa a curva
azul. Visto que a curva azul é uma solução desconhecida, podemos assumir
que, para valores de (t − t0 ) não muito grandes, a curva laranja se comporta de
forma muito similar à curva azul. Ou seja, para valores de (t − t0 ) não muito
grandes, o erro entre a curva amarela e a curva azul pode ser estimado como
o erro entre a curva amarela e a curva laranja. A diferença entre essas curvas
(amarela e laranja) está essencialmente no terceiro termo da série de Taylor:
(t − t0 )2 00
y ( t0 ) 7−→ C ( t − t0 )2
2
7
onde C é uma constante. Vamos assumir então que o erro de truncamento
para valores pequenos de (t − t0 ) pode ser definido como:
⇓ ⇓
Valor estimado de y(t A ) Erro de truncamento
⇓ ⇓
Valor estimado de y(t A /2) 1º Erro de truncamento
⇓ ⇓
Valor estimado de y(t A ) 2º Erro de truncamento
tA − 0 2
C
1º Erro de truncamento = C (t A /2 − 0)2 = C = ( t A − 0)2
2 4
tA − 0 2
2 C
2º Erro de truncamento = C (t A − t A /2) = C = ( t A − 0)2
2 4
8
Ou seja:
C
"1º + 2º erros de truncamento" = ( t A − 0)2 (15)
2
que é metade do valor do erro de truncamento obtido em uma única etapa,
obtido na Equação 13. Percebe-se então que o erro será cada vez menor quanto
mais etapas (passos) forem utilizadas para estimar um valor qualquer de y(t)
a partir de um valor conhecido y(t0 ).
9
Exemplo 2:
a) N = 6
b) N = 12
c) N = 24
Solução:
a)
N=6
t N − t0 3−0
h= = = 0, 5 .
N 6
n tn yn f (tn , yn )
0 0, 0 1
1 0, 5
2 1, 0
3 1, 5
4 2, 0
5 2, 5
6 3, 0
n tn yn f (tn , yn )
0 0, 0 1, 00 −1, 00
1 0, 5 0, 50 −0, 25
2 1, 0 0, 38 0, 63
3 1, 5 0, 69 1, 56
4 2, 0 1, 47 2, 53
5 2, 5 2, 73 3, 52
6 3, 0 4, 49
10
b)
n tn yn f (tn , yn )
0 0, 00 1, 00 −1, 00
1 0, 25 0, 75 −0, 69
2 0, 50 0, 58 −0, 33
3 0, 75 0, 50 0, 07
4 1, 00 0, 51 0, 49
5 1, 25 0, 63 0, 93
6 1, 50 0, 87 1, 38
7 1, 75 1, 21 1, 85
8 2, 00 1, 67 2, 33
9 2, 25 2, 26 2, 81
10 2, 50 2, 29 3, 29
11 2, 75 3, 78 3, 78
12 3, 00 4, 73
c)
n tn yn f (tn , yn )
0,00 0,00 1,00 -1,00
1,00 0,13 0,88 -0,86
2,00 0,25 0,77 -0,71
3,00 0,38 0,68 -0,54
4,00 0,50 0,61 -0,36
5,00 0,63 0,57 -0,18
6,00 0,75 0,54 0,02
7,00 0,88 0,55 0,22
8,00 1,00 0,57 0,43
9,00 1,13 0,63 0,64
10,00 1,25 0,71 0,86
11,00 1,38 0,81 1,08
12,00 1,50 0,95 1,30
13,00 1,63 1,11 1,53
14,00 1,75 1,30 1,76
15,00 1,88 1,52 1,99
16,00 2,00 1,77 2,23
17,00 2,13 2,05 2,47
18,00 2,25 2,36 2,70
19,00 2,38 2,70 2,94
20,00 2,50 3,06 3,19
21,00 2,63 3,46 3,43
22,00 2,75 3,89 3,67
23,00 2,88 4,35 3,92
24,00 3,00 4,84
11
Pelo que foi discutido anteriormente, em teoria, a estimativa obtida com
o maior número de passos deve ser a melhor, pois apresenta o menor erro
de truncamento total. Para verificarmos que isso realmente acontece, vamos
comparar as soluções numéricas obtidas até então com a solução exata:
Como era de se esperar, o erro foi menor para soluções obtidas com um
número maior de passos. Em problemas reais, que demandam uma solução
numérica, não temos uma solução exata para comparar (até por que se tivésse-
mos, não precisaríamos da numérica). Precisamos então estimar o erro da
solução numérica sem que seja necessário o conhecimento da solução exata. O
erro da solução obtida com 6 passos pode ser estimado como a diferença (em
módulo) entre a própria solução com 6 passos e a solução numérica obtida
com 3 passos:
|4, 4922 − 4, 000| = 0, 4922
O mesmo pode ser feito para estimar os erros para as soluções com 12 e 24
passos:
A Tabela acima indica que ainda que os erros estimados não sejam idên-
ticos aos reais, eles são ao menos próximos, e tendem a ficar mais próximos
conforme o número de passos aumenta. Isso acontece por que toda a análise
feita anteriormente parte do pressuposto de que estamos trabalhando com
valores de passos suficientemente pequenos para que a Equação 12 seja válida.
12
Solução do exemplo em Scilab
t0 = 0 y0 = 1 N = 12 tN = 3
13
3. Defina uma função para resolver o problema pelo método de Euler:
(a) Inicialmente atribua um nome à função (nesse caso, "euler") e seus
argumentos de entrada na ordem desejada:
14
(c) Use as fórmulas do método explícito de Euler para calcular os
valores dos vetores t e y para cada passo:
15
4. Use a função criada para resolver o problema:
16
Podemos plotar o vetor y em função do vetor t, para avaliar a solução do
problema a partir da condição inicial até o ponto desejado:
4.5
3.5
2.5
y
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3
t
17