Você está na página 1de 38

Mtodo de Euler

Mtodos de Runge-Kutta
Sistemas de EDOs
Problema de valor inicial
11-02-2009 1 N.Sousa, ESAC (c)
Mtodos numricos so procedimentos que transformam
clculos analticos complicados num conjunto de clculos
simples (muitos!)
Integrao numrica um tipo de mtodo numrico, cujo
objectivo encontrar uma soluo aproximada de uma ED.
Os MNs no fornecem resultados exactos, mais sim
aproximaes. H sempre um desvio em relao ao resultado
exacto, um erro. Este aparece porque...
aproximaes. H sempre um desvio em relao ao resultado
exacto, um erro. Este aparece porque...
(input) Os dados de entrada no problema so frequentemente
obtidos de medies, as quais provavelmente no sero exactas.
(output) O prprio mtodo introduz erros (arredondamento,
truncao, propagao, etc.) Isto reflecte-se no resultado final.
Para saber que confiana podemos ter nos resultados
numricos, importa responder s perguntas:
Qual o erro do nosso clculo? e
esse erro admissvel no contexto?
11-02-2009 2 N. Sousa, ESAC
Problema: prever a velocidade de queda dum
pra-quedista
Modelo matemtico: lei de Newton, F = ma
Foras a actuar: peso e arrasto
Equao diferencial para v(t)!
arrasto
arrasto
, P mg F cv
dv
F ma m
dt
dv
F P F ma m mg cv
dt
= =

= =

= + = =
11-02-2009 3 N. Sousa, ESAC
Mtodo analtico: transformadas de Laplace.
Se v
0
= 0:
( )
( / )
( ) 1
c m t
gm
v t e
c

=
v(t) v
an
(m/s)
v(0) 0
v(2) 11,187
v(4) 14,393
Soluo exacta, ou analtica
Mtodo numrico: velocidade no instante i+1
pode ser calculada aproximadamente, se
soubermos a velocidade no instante i:
v(4) 14,393
v(6) 15,311
v() 15,679
2
9, 8 m/s 80kg
50kg/s
g m c = = =
11-02-2009 4 N. Sousa, ESAC
Para resolver numericamente, notemos que
e substituamos esta aproximao na lei de Newton:
1
1
( ) ( )
i i
i i
v t v t dv v
dt t t t
+
+

=

( ) ( ) v t v t c
e assim obtemos uma expresso para a velocidade no instante
i + 1, recorrendo apenas a valores no instante i
( )
1
1
1 1
( ) ( )
( )
( ) ( ) ( )
i i
i
i i
i i i i i
v t v t c
g v t
t t m
c
v t v t g v t t t
m
+
+
+ +

(
= +
(

11-02-2009 5 N. Sousa, ESAC
Em vez de usar a
derivada
verdadeira,
usamos uma
aproximao aproximao
Da figura vemos
que, quanto mais
pequeno for t,
melhor a
aproximao
11-02-2009 N. Sousa, ESAC 6
Comeando com v
0
=0, podemos agora usar a
expresso para v(t
i+1
) para fazer um quadro
v(t) v
an
(m/s) v
num
(m/s)
v(0) 0 0
( )
(2) (0) (0) 2 0 19,6
c
v v g v
m
(
= + =
(

v(0) 0 0
v(2) 11,187 19,6
v(4) 14,393 14,7
v(6) 15,311 15,925
v() 15,679 15,679
( )
(4) (2) (2) 4 2 14,7
etc
m
c
v v g v
m
(

(
= + =
(

11-02-2009 7 N. Sousa, ESAC


Na resoluo numrica,
trocmos a derivada real
por uma aproximada. Da a
diferena entre os
resultados numricos e os
analticos (nesta figura foram
usados outros valores de m e c)
O que obtemos no foi a
soluo exacta mas uma
soluo aproximada
A soluo aproximada pode
ser melhorada
essencialmente de duas
maneiras:
1. Reduzir o passo t
2. Usar um mtodo numrico
mais refinado
11-02-2009 8 N. Sousa, ESAC
Na verdade, a melhor expresso para a fora
de arrasto no F = cv, mas sim F = cv
2
Por causa do quadrado, j no podemos usar
transformadas de Laplace!
Mas o mtodo numrico pode ainda ser Mas o mtodo numrico pode ainda ser
usado: basta mudar na lei de Newton
Obtemos assim:
( ) ( )
2
1 1
( ) ( ) ( )
i i i i i
c
v t v t g v t t t
m
+ +
(
= +
(

( )
2
( ) ( )
i i
v t v t
11-02-2009 9 N. Sousa, ESAC
Ou seja, onde o mtodo analtico falha, o
numrico pode ainda funcionar.
Nova tabela pode ser feita.
Neste caso, o passo t = 2 demasiado grande.
Para evitar que os erros de aproximao levem a
resultados incorrectos, h que diminuir o passo
Para evitar que os erros de aproximao levem a
resultados incorrectos, h que diminuir o passo
t para t = 0,1 s
para obter v(2), passam a
ser precisas 20 iteraes
v(t) v
an
(m/s) v
num
(m/s)
v(0) 0 0
v(2) N/D 3,95978
v(4) N/D 3,95979
v() 3,95980 3,95980
11-02-2009 10 N. Sousa, ESAC
Mtodos analticos
(+) Resultados exactos
(+) Do uma melhor intuio para o problema
(-) Nem sempre podem ser aplicados
Mtodos numricos: tcnicas de transformao de
problemas complicados em contas simples (muitas!!!) problemas complicados em contas simples (muitas!!!)
(+) Podem ser aplicados a qualquer problema. Nem o
tipo nem o tamanho do problema importam
(+) Evitam ter que se simplificar o problema (preservam
toda a informao sobre ele)
(-) Erros na entrada de dados, nas aproximaes feitas e
por propagao nos clculos podem fazer descarrilar o
resultado final
(-) Por vezes obscurecem propriedades do problema
11-02-2009 N. Sousa, ESAC 11
Aps o exemplo preliminar, vamos em seguida estudar
mtodos numricos para a integrao de equaes
diferenciais ordinrias de 1 ordem, explcitas
Uma EDO de 1 ordem, explcita tem a forma geral
( , )
dy
f x y =
Ordinria: a ED contm apenas derivadas de uma varivel
dependente y, em ordem a uma s varivel independente, x.
1 ordem: a maior ordem de derivao a 1 ordem.
Explcita: porque o termo y aparece isolado.
Os mtodos de integrao numrica exigem que seja
dado um ponto de partida para a sua aplicao,
denominado valor inicial: y(x
0
) = y
0
.
( , )
dy
f x y
dx
=
11-02-2009 12 N.Sousa, ESAC (c)
No problema do pra-quedista, a resoluo baseou-se em:
Ou, matematicamente falando,...
Novo valor valor antigo declive passo = +
1 i i
y y h
+
= +
Ou seja, um novo valor y extrapolado a partir dum valor
antigo de y e do declive no ponto antigo, (x,y). O processo
pode ser repetido sucessivamente, obtendo-se assim uma srie
de pontos (x
i
,y
i
) que estimamos estarem perto da soluo real.
Podemos unir esses pontos por segmentos de recta,
construindo-se assim uma aproximao do grfico da soluo.
Existem outras filosofias de resoluo numrica de EDOs, mas
estudaremos apenas esta.
Mtodos que seguem esta filosofia so denominados one-step
methods
11-02-2009 N.Sousa, ESAC (c) 13
1 i i +
Slope:
Declive
Step size:
Passo Passo
Valor y(x) em
x
i+1
calculado
a partir do
valor em x
i
e
do declive
nesse ponto
11-02-2009 N.Sousa, ESAC (c) 14
O mtodo de Euler, que usmos no problema
do pra-quedista, o mais simples dos
mtodos one-step
No mtodo de Euler assume-se que o declive
em todo o intervalo h constante e igual ao em todo o intervalo h constante e igual ao
valor no incio desse intervalo, o qual obtido
substituindo (x
i
,y
i
) directamente na ED:
Obtemos ento: (recorde-se que )
11-02-2009 N.Sousa, ESAC (c) 15
( , )
i
i i
x x
dy
f x y
dx

=
= =
1
( , )
i i i i
y y f x y h
+
= +
1 i i
h x x
+
=
Graficamente, podemos ver que o mtodo de Euler no
ideal porque nele se faz a assuno (optimista) que em todo
o intervalo h o declive sempre igual ao declive no incio do
intervalo
11-02-2009 N.Sousa, ESAC (c) 16
Resolues numricas de EDOs envolvem dois tipos de
erros:
1. Erro de truncao. Podem ser locais ou globais e so
causados pela prpria natureza dos mtodos
numricos. P.ex. o mtodo de Euler baseia-se na srie
de Taylor, truncada 1 ordem. A cada passo gerado
um erro local de truncao, que se vai propagando por
toda a soluo. O valor total deste erro no fim o erro
um erro local de truncao, que se vai propagando por
toda a soluo. O valor total deste erro no fim o erro
global de truncao.
2. Erros de arredondamento. Causados pelas limitaes
de algarismos significativos durante os clculos.
No mtodo de Euler, pode-se provar que o erro
global de truncao da ordem do passo: .
Para diminuir o erro de truncao pode-se diminuir
o passo ou escolher um mtodo numrico mais
preciso.
11-02-2009 N.Sousa, ESAC (c) 17
~ ( )
t
E O h
Resoluo da ED para passos
de h = 0,5 e h = 0,25
Erro local: discrepncia
entre o declive mdio real e
o estimado numericamente,
em cada passo
3 2
2 12 20 8,5 y x x x

= + +
em cada passo
Erro global: afastamento
entre a soluo real e a
numrica
Como o erro global de
truncao proporcional a
h, se h baixar para metade,
tambm o erro global dever
cair para metade. A figura
confirma esta previso.
11-02-2009 N.Sousa, ESAC (c) 18
Se olharmos expresso do mtodo de Euler, vemos que uma
expanso em srie de Taylor de 1 ordem da funo y(x):
Um melhoramento ao mtodo seria, p.ex., continuar a expanso
de Taylor at 2 ordem:
Srie Taylor orde
1
m 1
i i i i
y y h y y h
+

= + = +

de Taylor at 2 ordem:
No entanto, este procedimento complicado e muito trabalhoso
Uma outra possibilidade tentar melhorar a nossa estimativa do
declive
Esta ideia exige mais clculos, mas as solues obtidas so
muito mais precisas do que aquelas que se obteriam diminuindo
o passo no mtodo de Euler ou usando uma srie de Taylor de
ordem superior a 1
11-02-2009 N.Sousa, ESAC (c) 19
2 2
1
( , ) 1 1
( , )
2 2
i i
i i i i i i i
df x y
y y y h y h y f x y h h
dx
+

= + + = + +
A principal fonte de erros do mtodo de Euler ,
como vimos na pg. 16, assumir que o declive
em todo o intervalo do passo igual ao declive
no incio desse intervalo
O mtodo de Heun usa duas equaes para O mtodo de Heun usa duas equaes para
melhorar a estimativa do declive: o previsor e o
corrector
A ideia prever, pelo mtodo de Euler, o
declive no ponto (x
i+1
,y
i+1
) e usar essa previso
para corrigir o declive no ponto (x
i
,y
i
)
com declive corrigido que depois calculamos
y
i+1
11-02-2009 N.Sousa, ESAC (c) 20
O mtodo de Euler d-nos uma previso
para y
i+1
, que vamos designar por y
(P)
i+1
:
O declive no ponto (x
i+1 ,
y
(P)
i+1
) dado
pela ED: y = f(x,y)
( )
1
previsor) ( , ) (
P
i i i i
y y f x y h
+
= +
pela ED: y = f(x,y)
O declive a usar em (x
i,
y
i
) pode ento
ser corrigido, fazendo-se a mdia dos
declives y

i
(Euler) e y
(P)
i+1
(previsto):
11-02-2009 N.Sousa, ESAC (c) 21
( ) ( )
1 1 1
( , )
P P
i i i
y f x y
+ + +

=
( )
1 1
1
corrector)
( , ) (
(
, )
2
P
i i i i
i i
f x y f x y
y y h
+ +
+
+
= +
Como vemos,
o mtodo de
Heun d-nos
uma soluo
bastante
melhor que o
3 2
2 12 20 8,5 y x x x

= + +
melhor que o
de Euler
Erro global
de truncao
no mtodo
de Heun:
11-02-2009 N.Sousa, ESAC (c) 22
2
~ ( )
t
E O h
Os mtodos de Runge-Kutta (RK) (l-se runje-
kuta) alcanam a preciso de uma srie de
Taylor, mas sem ter que recorrer a derivadas de
ordem maior que 1
H muitas variedades de mtodos RK, mas H muitas variedades de mtodos RK, mas
todos eles seguem a filosofia one-step, pelo
que se podem escrever na forma:
A ideia igual do mtodo de Heun: melhorar
a estimativa do declive (aqui dito incremento)
11-02-2009 N.Sousa, ESAC (c) 23
1
1 1 2 2
Funo de increment o:
( , , )
i i i i
n n
y y x y h h
a k a k a k

+
= +
= + + +
No incremento , os as so
constantes e os ks so dados por:
1 1 2 2 n n
a k a k a k = + + +
1
2 1 11 1
( , )
( , )
( , )
i i
i i
k f x y
k f x p h y q k h
k f x p h y q k h q k h
=
= + +
= + + +
com ps e qs constantes. Dado n, os as, ps e qs so
todos determinados por uma srie de Taylor
Note-se que os ks so dados por recorrncia: sabido
k
i
, calcula-se k
i+1
11-02-2009 N.Sousa, ESAC (c) 24
3 2 21 1 22 2
1 1,1 1 2,2 2 1, 1 1
( , )
( , )
i i
n i n i n n n n n
k f x p h y q k h q k h
k f x p h y q k h q k h q k h

= + + +
= + + + + +

Usando uma srie de Taylor, pode-se mostrar


(ver p.ex. Chapra p.703) que os coeficientes
a, p e q de 2 ordem obedecem a
1 2 2 1 2 11
1 1
1, ,
2 2
a a a p a q + = = =
Como temos 3 equaes para 4 incgnitas,
uma delas, p.ex. a
2
, pode ser especificada
como entendermos. Os valores mais usuais
so a
2
= 1/2, a
2
= 1 e a
2
= 2/3
Tendo a
2
fixo, os restantes valores de a, p e q
ficam determinados.
11-02-2009 N.Sousa, ESAC (c) 25
1 2 2 1 2 11
1, ,
2 2
a a a p a q + = = =
Mtodo de Heun (como vemos, apenas um RK2): a
2
= 1/2
Mtodo do ponto mdio: a
2
= 1
1 1 2
1 2 1
1 1
2 2
( , ) , ( , )
i i
i i i i
y y k k h
k f x y k f x h y k h
+
| |
= + +
|
\
= = + +
Mtodo do ponto mdio: a
2
= 1
Mtodo de Ralston (minimiza E
t
2 ordem): a
2
= 2/3
11-02-2009 N.Sousa, ESAC (c) 26
1 2
1 2 1
1 1
( , ) , ,
2 2
i i
i i i i
y y k h
k f x y k f x h y k h
+
= +
| |
= = + +
|
\
1 1 2
1 2 1
1 2
3 3
3 3
( , ) , ,
4 4
i i
i i i i
y y k k h
k f x y k f x h y k h
+
| |
= + +
|
\
| |
= = + +
|
\
O que o mtodo
RK2 do ponto
mdio faz
calcular o declive
no ponto mdio do no ponto mdio do
intervalo, l
Euler, e usar esse
declive em todo o
intervalo!
11-02-2009 N.Sousa, ESAC (c) 27
Erros globais
de truncao
dos vrios
mtodos RK2:
3 2
2 12 20 8,5 y x x x

= + +
2
~ ( )
t
E O h
11-02-2009 N.Sousa, ESAC (c) 28
~ ( )
t
E O h
medida que a ordem sobe, sobe tambm a preciso do
mtodo numrico de RK
A srie de Taylor aplicada a RK de 3 ordem d-nos ainda
mais ambiguidade nas constantes a, p e q. Os valores mais
comuns para as constantes levam a:
( )
1
4 y y k k k h = + + +
11-02-2009 N.Sousa, ESAC (c) 29
( )
1 1 2 3
1
2 1
3 1 2
1
4
6
( , )
1 1
,
2 2
( , 2 )
i i
i i
i i
i i
y y k k k h
k f x y
k f x h y k h
k f x h y k h k h
+
= + + +
=
| |
= + +
|
\
= + +
Quando necessrio ainda mais preciso, pode-se usar RK
de 4 ordem ou 5 ordem (Butcher), ou at superior
O mtodo clssico RK de 4 ordem corresponde
recorrncia:
( )
1 1 2 3 4
1
2 2
6
i i
y y k k k k h
+
= + + + +
11-02-2009 N.Sousa, ESAC (c) 30
1
2 1
3 2
4 3
6
( , )
1 1
,
2 2
1 1
,
2 2
( , )
i i
i i
i i
i i
k f x y
k f x h y k h
k f x h y k h
k f x h y k h
=
| |
= + +
|
\
| |
= + +
|
\
= + +
1. Escrever a ED na forma
2. Escolher o mtodo numrico a usar (Euler, Heun,
Runge-Kutta ou outro)
3. Para o mtodo escolhido, escrever a frmula de
recorrncia correspondente e
( , ) y f x y

=
y y h = + recorrncia correspondente e
identificar a funo de incremento (ou declive),
4. Determinar valores iniciais x
0
, y
0
e escolher o
tamanho do passo, h
5. Aplicar a frmula de recorrncia sucessivamente
at chegar ao ponto final.
11-02-2009 N.Sousa, ESAC (c) 31
1 i i
y y h
+
= +
Mtodo Erro global de
truncao
Esforo de
clculo
Observaes
Euler O(h) Baixo
Bom para ter uma
primeira ideia do
resultado
, na verdade, um
No geral, para um mtodo de ordem n,
~ ( )
n
t
E O h
Heun O(h
2
) Mdio
, na verdade, um
mtodo RK de 2 ordem
RK 2ordem, ponto mdio O(h
2
) Mdio
RK 2ordem, Ralston O(h
2
) Mdio
Minimiza erro de
truncao em 2 ordem
RK 3 ordem O(h
3
) Alto
RK 4 ordem O(h
4
) Alto
Mtodo mais comum
quando necessrio
preciso
11-02-2009 N.Sousa, ESAC (c) 32
Decrscimo do erro
relativo como funo do
esforo computacional
para as vrias ordens dos
mtodos de Runge-Kutta
Os mtodos de maior Os mtodos de maior
ordem obtm maior
exactido para o mesmo
nmero de clculos
A partir de um certo
ponto, todos os mtodos
requerem um grande
aumento do esforo para
diminuio do erro
11-02-2009 N.Sousa, ESAC (c) 33
Se, medida que se calcula a soluo numrica no intervalo de
interesse, os erros locais de truncao alternarem de sinal, estes
vo tender a anular-se uns aos outros, reduzindo assim o erro
global de truncao.
Mas, se no intervalo em estudo o erro local for sempre do mesmo
sinal, estes vo acumulando e a disparidade entre a soluo real
e a numrica vai aumentando. Neste caso, o resultado dito
instvel.
e a numrica vai aumentando. Neste caso, o resultado dito
instvel.
No exemplo da pgina 18, o erro global vai subindo at x = 1,5.
Nesse ponto o erro global comea a diminuir at x = 3,25, onde
volta a subir.
Por vezes h instabilidades em intervalos longos onde a soluo
real montona. A nica cura reduzir o tamanho do passo e
refazer os clculos ou usar um mtodo de ordem superior.
Quando usamos o mtodo de Euler para ter uma primeira ideia do
aspecto da soluo, se o grfico contiver zonas de instabilidade,
deve-se pensar em usar RK3 ou RK4. Se a soluo for oscilante,
normalmente RK2 basta.
11-02-2009 N.Sousa, ESAC (c) 34
Uma EDO de 2 ordem, ordinria e explcita tem a forma geral
Uma EDO de 2 ordem pode ser transformada num sistema de
duas EDOs de ordem 1, mediante a mudana de varivel y = z:
2
2
( , , )
d y
f x y y
dx

=
duas EDOs de ordem 1, mediante a mudana de varivel y = z:
Resolver numericamente este sistema equivalente a resolver
a EDO inicial. Para isso precisamos, no de um mas sim dois,
valores iniciais: y(x
0
) = y
0
e y(x
0
) = y
0
EDOs de 2 ordem so bastante frequentes. Ex.:
O mesmo princpio de transformao em sistema se aplica a
EDOs explcitas de ordem 3 ou superior.
11-02-2009 35 N.Sousa, ESAC (c)
2
2
( , , )
( , , )
y z
y z
d y
f x y y
dx z f x y z
=

=

=


=

2
2
d x
dt
F ma m = =
A ideia do mtodo de Euler pode ser usada para
resolver o nosso sistema de EDOs
1 i i i
y
y
x
y z y y z h
+

= = +

As funes de incremento/declives so pois


Para iniciar o processo, basta saber y
0
e z
0
= y
0
11-02-2009 N.Sousa, ESAC (c) 36
1
( , , ) ( , , )
z
z
x
i i i i i
z f x y z z z f x y z h

= = +

1 1
, ( , , )
y i z i i i
k z k f x y z = =
Se usarmos os declives estimados pelo mtodo de Euler para corrigir os declives
iniciais, temos uma extenso dos mtodos RK2 para sistemas de EDOs
RK2 Heun
1
1 1 2 2
1
1 1 2
2 1
2 1 1 2
1
1
( ) , ,
( ) , ( , , ) , ( , , )
y i z
z i i y i
i i y y
i i z z
y i
z i i z i
y y k k h
z z k k
k z k h k z
k f x y k f x h y k h z k h h z
+
+
= = + +
= +
+

= + +
=
= + +

RK2 ponto mdio


RK2 Ralston
11-02-2009 N.Sousa, ESAC (c) 37
1 1 2 2 1 1 2 1 z i i y i i i z z z i i z i +

1
2 1 2 1 2
1 2
1
1 1 1
2 1 1 1 2 2 2
, ,
( , , ) , , , ( , )
y i z
z i i
i i y
i
y i
z i i i y z z i i
k z
k f
y y k k z k h
k f x h y k h z k h
h
z x z z y k h
+
+
= + = +

= +
=
+ = = + +

3
2 1 4 1
1 2
1 1 2 3 3
1 3 3 3
2 1 1 4 4 4 1 3 1
2
1 2 3
( ) , ,
( ) , , , ) , ( ) , ( ,
i y i i y y
i i z z
y i z
z z i i i i y i z i
y y k k h
z z k k
k k z k h
k f x h y k h z
z
k f k h h x y z
+
+
= + = + +

= + + = + = + +
=

Se, em vez do sistema de EDOs que obtivemos de uma EDO de 2


ordem, tivermos um sistema mais geral, os mtodos RK podem ainda
ser usados
Um sistema de duas EDOs tem, em vez de y = z uma 1 equao com
a forma mais geral
( , , ) y g x y z

Para este sistema geral, o mtodo RK2 Heun


Para outros mtodos RK2, basta substituir y = z por y = g(x,y,z)
Para RK3 e RK4, vamos calculando os novos declives usando sempre o
conjunto de declives mais actual. Ver exemplo na p.712-713 do livro.
11-02-2009 N.Sousa, ESAC (c) 38
procuramos funes e , solues do sistema ( ) ( )
( , , )
( , , )
y x z x
y g x y z
z f x y z

1
1 1 2 2
1
2 1 1
2 1 1 1 1 1 2
1
2
( , , ( ) , , )
( , , )
( , , )
( , ( ) , , , )
y i i y i z
z i i y i
y i i i
z i i i
i i y y
i z i z z
y k g x y z
k f x
k g x h
y z
y k h z k h
k
y k k h
z z f x h y k h z k h k k h
+
+
= + + +
= + + +
= + +

= + +
=
=