Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Aula 21

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 20

MS211 - Cálculo Numérico

Aula 21 – Métodos de Runge-Kutta.

Marcos Eduardo Valle

Marcos Eduardo Valle MS211 - Cálculo Numérico 1 / 19


Introdução
Na aula anterior, apresentamos os métodos de série de Taylor para
um problema de valor inicial (PVI)
(
y 0 = f (x, y ),
y (x0 ) = y0 .

De um modo geral, um método numérico determina uma


aproximação yk para y (xk ), em que xk = x0 + kh, para k = 1, 2, . . ..

Um método numérico é dito de ordem p se o erro local, obtido


assumindo yk = y (xk ), satisfaz

e(xk +1 ) = |y (xk +1 ) − yk +1 | < Chp+1 ,

em que C > 0 é uma constante que pode depender das derivadas


da solução y do PVI.
Marcos Eduardo Valle MS211 - Cálculo Numérico 2 / 19
Método de Série de Taylor de Ordem 1 e 2

O método de Euler que é um método de série de Taylor de ordem 1,


define:
yk +1 = yk + hf (xk , yk ).

Similarmente, um método de série de Taylor de ordem 2 define:

h2 
yk +1 = yk + hf (xk , yk ) + fx (xk , yk ) + fy (xk , yk )f (xk , yk ) .
2
Aqui, yk é uma aproximação para y (xk ), com xk = x0 + kh.

Obtemos erro local menores considerando métodos de série de


Taylor de ordem maior. Contudo, temos que calcular derivadas
parciais de f !

Marcos Eduardo Valle MS211 - Cálculo Numérico 3 / 19


Métodos de Runge-Kutta
Os métodos de Runge-Kutta são métodos de passo simples, ou
seja, yk +1 é determinado usando apenas de xk e yk .

Um método de Runge-Kutta de ordem p não requer o cálculo de


qualquer derivada de f , mas depende de outra função φ que é
definida avaliando f em diferentes pontos.

Especificamente, os métodos de Runge-Kutta são dados por:

yk +1 = yk + hφ(xk , yk ), ∀k = 0, 1, . . . ,

em que φ é uma função de x e y que depende indiretamente de f e


do tamanho do passo h.

O método de Euler, obtido considerando φ = f , é um método de


Runge-Kutta de ordem p = 1.
Marcos Eduardo Valle MS211 - Cálculo Numérico 4 / 19
Método de Heun
O método de Heun, também conhecido por método de Euler
modificado, é um método de Runge-Kutta de ordem 2.

No método de Heun, definimos


h
yk +1 = yk + (k1 + k2 ), ∀k = 0, 1, . . . ,
2
em que
k1 = f (xk , yk ) e k2 = f (xk + h, yk + hk1 ).
ou, equivalentemente,
hh i
yk +1 = yk + f (xk , yk ) + f (xk + h, yk + hf (xk , yk ) , ∀k = 0, 1, . . . ,
2

Observe que esse é um método de Runge-Kutta com


1 
φ(x, y ) = f (x, y ) + f x + h, y + hf (x, y ) .
2
Marcos Eduardo Valle MS211 - Cálculo Numérico 5 / 19
Método de Runge-Kutta de Ordem 4

O método de Runge-Kutta de ordem 4 é dado por:

h
yk +1 = yk + (k1 + 2k2 + 2k3 + k4 ) ,
6
em que

k1 = f (xk , yk ) ,
 
h h
k2 = f xk + , yk + k1 ,
2 2
 
h h
k3 = f xk + , yk + k2 ,
2 2
k4 = f (xk + h, yk + hk3 ) .

Marcos Eduardo Valle MS211 - Cálculo Numérico 6 / 19


Exemplo 1
Considere o PVI (
y0 = y,
y (0) = 1.
Use o método da Heun e o método de Runge-Kutta de ordem 4
para estimar y (0.04) com h = 0.04. Compare com a solução
analítica y (0.04) = e0.04 .

Marcos Eduardo Valle MS211 - Cálculo Numérico 7 / 19


Exemplo 1
Considere o PVI (
y0 = y,
y (0) = 1.
Use o método da Heun e o método de Runge-Kutta de ordem 4
para estimar y (0.04) com h = 0.04. Compare com a solução
analítica y (0.04) = e0.04 .

Resposta: Pelo método de Heun, teremos


h2
 
y1 = y0 1 + h + = 1.0408.
2
Observe que essa é a solução encontrada pelo método de série de
Taylor de ordem 2 na aula anterior.
O erro obtido é
|e0.04 − y1 | = 1.0774 × 10−5 .

Marcos Eduardo Valle MS211 - Cálculo Numérico 7 / 19


No método de Runge-Kutta de ordem 4 temos
k1 = f (x0 , y0 ) = y0 ,
   
h h h
k2 = f x0 + , y0 + k1 = y0 1 + ,
2 2 2
h h2
   
h h
k3 = f x0 + , yk + k2 = y0 1 + + ,
2 2 2 4
h2 h3
 
k4 = f (x0 + h, y0 + k3 h) = y0 1 + h + + .
2 4
Logo,
h
y1 = y0 + (k1 + 2k2 + 2k3 + k4 )
6
h2 h3 h4
 
= y0 1 + h + + + = 1.04081077333333.
2 6 24
O erro obtido é
|e0.04 − y1 | = 8.5906 × 10−10 .
Marcos Eduardo Valle MS211 - Cálculo Numérico 8 / 19
Exemplo 2
Suponha que a densidade populacional p de lagartas seja descrita
pelo PVI  2
 dp = 2p (1 − p) − p ,
dt 1 + p2
p(0) = 0.1,

Use o método de Heun e o método de Runge-Kutta de ordem 4


para estimar p para 0 ≤ t ≤ 10.

Marcos Eduardo Valle MS211 - Cálculo Numérico 9 / 19


Usando o método de Heun com diferentes valores de h,
encontramos:
1

0.8

0.6
p

0.4

h=2.0
0.2
h=1.0
h=0.5
h=0.25
0
0 2 4 6 8 10
t
Marcos Eduardo Valle MS211 - Cálculo Numérico 10 / 19
Aproximações para p(10):

h 2.0 1.0 0.5 0.25


y (10) -3591.8 0.44582 0.83597 0.83597

Comentários:
• Encontramos um erro significativo para h ≥ 1.0.
• Comparando o gráfico, resultados semelhantes foram obtidos
considerando h = 0.5 e h = 0.25.
Portanto, podemos acreditar que encontramos um bom resultado
com h = 0.5! Contudo, precisamos fazer 20 iterações do método!

Apesar dessas observações, podemos mostrar que o método de


Euler modificado é também um método de ordem 2!

Marcos Eduardo Valle MS211 - Cálculo Numérico 11 / 19


O método de Runge-Kutta fornece
1

0.8

0.6
p

0.4

h=2.0
0.2
h=1.0
h=0.5
h=0.25
0
0 2 4 6 8 10
t

Marcos Eduardo Valle MS211 - Cálculo Numérico 12 / 19


Aproximações para p(10):

h 2.0 1.0 0.5 0.25


y (10) −2.2 × 101 7 0.81923 0.83597 0.83597

Comentários:
• Encontramos erro significativos para h ≥ 1.0.
• Comparando o gráfico, resultados semelhantes foram obtidos
considerando h = 0.5 e h = 0.25.
Portanto, podemos acreditar que encontramos um bom resultado
com h = 0.5! Nesse caso, efetuamos 20 iterações do método!

Podemos mostrar que esse método de Runge-Kutta é de fato um


método de ordem 4!

Marcos Eduardo Valle MS211 - Cálculo Numérico 13 / 19


Ordem do método de Heun
Vamos mostrar que o método de Heun é de ordem 2. Com efeito,
vamos considerar um caso mais geral em que φ é dada por

φ(x, y ) = af (x, y ) + bf x + ch, y + chf (x, y ) . (1)

No método de Heun, temos


1 1
a= , b= e c = 1.
2 2

Vamos encontrar a, b e c que maximizam a ordem do método de


Runge-Kutta com φ dada por (1).
Em outras palavras, vamos encontrar o maior valor p tal que
|y (xk + h) − yk +1 | ≤ C(hp+1 ),
para algum C > 0, supondo que yk = y (xk ).
Marcos Eduardo Valle MS211 - Cálculo Numérico 14 / 19
Primeiro, expandindo y (xk + h) em série de Taylor em torno de xk ,
encontramos
h2 h3
y (xk + h) = y (xk ) + y 0 (xk )h + y 00 (xk ) + y 00 (ξ) ,
2 6
para algum ξ entre xk e xk + h.

Lembrando que y (xk ) = yk e y 0 = f (x, y ), temos

y 0 (xk ) = f (xk , yk ) = f ,
y 00 (xk ) = fx (xk , yk ) + fy (xk , yk )fx (xk , yk ) = fx + fy f ,

Assim, temos

h2
y (xk + h) = yk + fh + (fx + fy f ) + C1 h3 ,
2
em que C1 = y 00 (ξ)/6.
Marcos Eduardo Valle MS211 - Cálculo Numérico 15 / 19
Sabemos também que

yk +1 = yk + hφ(xk , yk ) = yk + h af + bf (xk + ch, yk + chf ) ,

em que f , sem os argumentos, denota f (xk , yk ).

Supondo que f é diferenciável, podemos escrever

f (xk + ch, yk + chf ) = f (xk , yk ) + fx (xk , yk )ch + fy (xk , yk )(chf ) + C2 h2 ,

em que C2 depende das derivadas parciais de ordem 2 de f .

Denotando fx = fx (xk , yk ) e fy = fy (xk , yk ), encontramos



yk +1 = yk + h af + bf (xk + ch, yk + chf )
= yk + afh + b f + fx ch + fy fch + C2 h2


= yk + (a + b)fh + bc(fx + fy f )h2 + bC2 h3

Marcos Eduardo Valle MS211 - Cálculo Numérico 16 / 19


Combinando os resultados, concluímos que o erro local é

|y (xk + h) − yk +1 |
h2
= |(yk + fh + (fx + fy f )+ C1 h3 )
2
− (yk + (a + b)fh + bc(fx + fy f )h2 + bC2 h3 )|
 
1
= |(1 − a − b)fh + − bc (fx + fy f )h2 + (C1 − bC2 )h3 |
2

Portanto, se
a+b =1 e 2bc = 1,
então teremos
|y (xk + h) − yk +1 | ≤ Ch3 ,
para algum C ≥ |C1 − bC2 |.

Marcos Eduardo Valle MS211 - Cálculo Numérico 17 / 19


Lembre-se que no método de Heun, temos

1 1
a= , b= e c = 1,
2 2
que satisfazem as condições

a+b =1 e 2bc = 1.

Logo, esse é um método de Runge e Kutta de ordem 2.

Argumentos semelhantes podem ser usados para mostrar que o


método de Runge-Kutta de ordem 4 satisfaz

|y (xk + h) − yk +1 | ≤ Ch5 ,

para algum C > 0 (supondo que yk = y (xk )).

Marcos Eduardo Valle MS211 - Cálculo Numérico 18 / 19


Considerações Finais

Na aula de hoje apresentamos os métodos de Runge-Kutta.

Especificamente, apresentamos o método de Heun e um método de


Runge-Kutta de ordem 4.

Diferente dos métodos de série de Taylor, os métodos de


Runge-Kutta não requerem nenhuma derivada de f .

Porém, utilizam uma função auxiliar φ que é obtida avaliando f em


diferentes pontos.

Muito grato pela atenção!

Marcos Eduardo Valle MS211 - Cálculo Numérico 19 / 19

Você também pode gostar