Você está na página 1de 9

PMR 2420 Mecnica Computacional

CAPTULO III MTODOS DE RUNGE-KUTTA


So mtodos de passo simples requerem apenas derivadas de primeira ordem e pode fornecer aproximaes precisas com erros de truncamento da ordem de h2, h3, h4, etc. Todas os mtodos de Runge-Kutta tm a seguinte forma geral: yi +1 = yi + h( xi , yi , h ) onde , chamado de funo incremento, uma aproximao conveniente para f((x,y) no intervalo xi x xi +1 Runge-Kutta de segunda ordem Seja uma mdia ponderada de duas aproximaes da derivadas k1 e k2 no intervalo xi x xi +1

= ak1 + bk2
Ento o algoritmo de Runge-Kutta de segunda ordem fica:

yi +1 = yi + h( ak1 + bk2 )
y

(I)

k y i+1 k

2 1

y h x i x

i+1

f ( xi , y i ) + f ( xi +1 , yi +1 ) yi +1 = yi + h 2 Assumindo: k1 = f ( xi , yi ) (a=b=1/2)

i+1

k 2 = f ( xi + ph, y i + qhf ( xi , y i )) = f ( xi +1 , y i +1 ) Expandindo k2 em srie de Taylor:


33

PMR 2420 Mecnica Computacional

k 2 = f ( xi + ph, y i + qhf ( xi , y i )) = f ( xi , y i ) + phf x ( xi , y i ) + qhf ( xi , y i ) f y ( xi , y i ) + O (h 2 ) (II) Substituindo (II) em (I) yi +1 = yi + h[ af ( xi , yi ) + bf ( xi , yi )] + h 2 [bpf x ( xi , yi ) + bqf ( xi , yi ) f y ( xi , yi )] + O ( h 3 ) (III) Expandindo y(x) em xi usando srie de Taylor: h2 h3 f ' ( xi , y ( xi )) + f " ( , y ( )) = 2! 3! dy h 2 d 2 y h 3 d 3 y ( ) = y ( xi ) + h + + 3! dx 3 dx 2! dx 2 y ( xi + h ) = y ( xi ) + hf ( xi , y ( xi )) + (IV) Lembrando que: f '( xi , y ( xi )) = f x ( xi , y ( xi )) + f y ( xi , y ( xi )) f ( xi , y ( xi )) (regra da cadeia)

Igualando os termos de mesma potncia em h das equaes (III) e (IV), tem-se: potncia de h expanso de y(x) em Taylor algoritmo de Runge-Kutta

y(xi)

yi

f ( xi , y ( xi ))
1 f x ( xi , y ( xi )) + f y ( xi , y ( xi )) f ( xi , y ( xi )) 2

( a + b ) f ( xi , y ( xi )) bpf x ( xi , yi ) + bqf ( xi , yi ) f y ( xi , yi )

assumindo: yi = y ( xi ) a + b = 1 a = 1 b 1 bp = 2 p=q= 1 1 2b bq = 2 famlia de mtodos de segunda ordem

34

PMR 2420 Mecnica Computacional

Escolhendo b =

1 1 p = q =1 e a = 2 2

(Mtodo de Heun)

k1 = f ( xi , yi ) k 2 = f ( xi + h, yi + hk1 )
ento: 1 1 y i +1 = y i + h k 1 + k 2 2 2 fazendo b = 1 a = 0 e p = q = 1/2

yi +1 = yi + hk2
1 1 onde: k1 = f ( xi , yi ) e k 2 = f x i + h, y i + hk 1 2 2 isto pode ser interpretado da seguinte forma: h h y i +1 = y i + hf x i + , y i +1 2 onde y1+1 2 = yi + f ( xi , yi ) 2 2
y y y i+1/2 h/2 h/2 x i x i+1 x k i+1 2 1

Este mtodo chamado de Mtodo de Euler Modificado Runge-Kutta de 2a ordem tem erro local de truncamento O(h3) e erro global O(h2) Os mtodos de Runge-Kutta de ordens superiores so desenvolvidos de modo anlogo.

35

PMR 2420 Mecnica Computacional

Runge-Kutta de 3a ordem y i +1 = y i + h(ak 1 + bk 2 + ck 3 ) onde k1, k2 e k3 so aproximaes das derivadas em vrios pontos no intervalo de integrao xi , xi +1 . Nesse caso,

k1 = f ( xi , yi )
k 2 = f ( xi + ph , yi + phk1 )

k 3 = f ( xi + rh, yi + shk2 + ( r s) hk1 )


Para determinar as constantes a, b, c, p, r e s, expandem-se k2 e k3 em Taylor, em torno de (xi,yi) e obtm-se as seguintes equaes: a +b+c =1 1 bp + cr = 2 bp 2 + cr 2 = cps = 1 6 1 2

Duas das contantes so escolhidas arbitrariamente. Para um determinado conjunto de constantes escolhido por Kutta, tem-se o seguinte mtodo de 3a ordem h (k + 4k 2 + k 3 ) 6 1

y i +1 = y i +

k1 = f ( xi , yi ) h h k 2 = f xi + , yi + k 1 2 2

k 3 = f (x i + h, yi + 2hk 2 hk 1 ) dy = f ( x) dx

Equivale regra de Simpson se

36

PMR 2420 Mecnica Computacional

Runge-Kutta de 4a ordem (vrios mtodos dependendo da escolha das constantes). Segundo Kutta: h (k + 2 k 2 + 2 k 3 + k 4 ) 6 1 k1 = f ( xi , yi ) h h k 2 = f xi + , yi + k 1 2 2 h h k 3 = f xi + , yi + k 2 2 2 yi +1 = yi + k 4 = f ( xi + h, y i + hk 3 )

Controle do passo nos Algoritmos de Runge-Kutta Algoritmo de Runge-Kutta de ordem m expanso em Taylor com termos at hm erro local de truncamento: onde: m = ordem do mtodo K = funo complicada dependendo de f(x,y) e suas derivadas Para escolher h dado um certo et considerando: a) erro local de truncamento et Kh m+1 (supor K constante) b) erro local de truncamento a contribuio mais importante para o erro global
* Assumindo yn +1 como a soluo exata, uma estimativa do erro local de truncamento pode ser obtida integrando-se entre xn e xn+1 com dois passos diferentes, h1 e h2, obtendo-se duas estimativas de yn+1, yn+1,1 e yn+1,2

et = Kh m+1 + O ( h m+ 2 )

Empregando a extrapolao de Richardson:


* yn +1 y n +1,1 = Kh1 m +1

(xn+1 xn )

h2 onde xn+1-xn equivale ao nmero de passos. Dividindo (1) por (2) tem-se:

* m +1 yn +1 y n +1, 2 = Kh2

(x

h1
n +1

(1) (2)

xn )

37

PMR 2420 Mecnica Computacional

* n +1

y n +1,1 y n +1,2 (h1 h2 ) 1 (h1 h2 )


m

(3)

escolhendo h2 = h1 2 tem-se:

* n +1

yn +1,1 2 m yn +1,2 = 1 2m

(4)

Assim, uma estimativa para o erro local de truncamento para a soluo yn +1,1 , assumindo

(x

n +1

x n ) = h1 dada por: et = Kh1


m +1

2 m y n +1,2 y n +1,1 2m 1

(5)

Para o algoritmo de Runge-Kutta de 4a ordem (m = 4) 16 y y n +1,1 15 n +1,2 Usando esse procedimento para monitorar o erro, o nmero de clculos triplicado. et = Kh1 5 = Um outro critrio para determinar o tamanho do passo h, conhecido como critrio de Collatz feito atravs da avaliao da relao (k 3 k 2 ) (k 2 k 1 ) aps cada passo de integrao. Se esta relao se torna maior que alguns centsimos, o passo h deve ser diminuido. Soluo de E.D.O. simultneas seja o seguinte sistema com n E.D.O. dy1 = f 1 ( x , y1 , y 2 , , y n ) dx dy 2 = f 2 ( x , y1 , y 2 , , y n ) dx

ou

dy = [f ] dx

dy n = f n ( x , y1 , y 2 , dx

, yn )

com condies iniciais: y1 ( x0 ) = y10 y2 ( x0 ) = y2 0

ou

[y ] = [y 0 ]
38

PMR 2420 Mecnica Computacional

yn ( x0 ) = yn0 Deve-se aplicar, qualquer um dos mtodos apresentados, em paralelo em cada passo. Por exemplo, o mtodo de Euler modificado: y1i +1 = y1i + hk 21 y2i+1 = y2 i + hk 2 2

ou

[y i +1 ] = [y i ] + h[k 2 ]

y ni +1 = y ni + hk 2n onde:

k11 = f 1 xi , y1i , y2i ,

k 12

( = f (x , y
2 i

y ni

1i

, y 2i ,

) y )
ni

ou

[k 1 ] = [f ( xi , [y i ])]

k 1n = f n xi , y1i , y 2i ,

y ni

h h h k 21 = f 1 xi + , y1i + k 11 , y 2i + k 12 , 2 2 2 h h h k 22 = f 2 xi + , y1i + k 11 , y 2i + k 12 , 2 2 2

y ni +

h k 2 1n h h h y ni + k 1n ou [k 2 ] = f ( xi + , [y i ] + [k 1 ]) 2 2 2 y ni + h k 2 1n

h h h k 2n = f n xi + , y1i + k 11 , y 2i + k 12 , 2 2 2

Exemplo: Aplicar R.K 4 seguinte equao diferencial (problema resolvido no livro do Carnahan, pgina 367): d 2V dV + RC + V = 0 (circuito eltrico RLC) 2 dt dt sujeita s seguintes condies iniciais: LC V ( 0) = V0 (tenso eltrica no capacitor)

dV dV (corrente eltrica no circuito: i = C ) =0 dt t = 0 dt Como primeiro passo, deve-se transformar a E.D.O. acima (segunda ordem) num sistema de E.D.O de primeira ordem. Fazendo:

39

PMR 2420 Mecnica Computacional

dV =I dt podemos escrever a equao do circuito como:

dI + RCI + V = 0 dt Assim teremos o seguinte sistema de E.D.O. LC


1 dI R = I V dt L LC dV =I dt com condies iniciais: V ( 0) = V0 I ( 0) = 0 Aplicando Runge-Kutta de 4a ordem: I i +1 = I i + Vi +1 onde: h (k + 2k 2 + 2k 3 + k 4 ) 6 1 h = Vi + (q1 + 2q 2 + 2q 3 + q 4 ) 6

k 1 = f 1 (t i ,Vi , I i ) h h h k 2 = f 1 t i + ,Vi + q1 , I i + k 1 2 2 2 h h h k 3 = f 1 t i + ,Vi + q 2 , I i + k 2 2 2 2 k 4 = f 1 (t i + h,Vi + hq 3 , I i + hk 3 ) q1 = f 2 (t i ,Vi , I i ) h h h q 2 = f 2 t i + ,Vi + q1 , I i + k 1 2 2 2 h h h q 3 = f 2 t i + ,Vi + q 2 , I i + k 2 2 2 2 q 4 = f 2 (t i + h,Vi + hq 3 , I i + hk 3 )

40

PMR 2420 Mecnica Computacional

sendo: f 1 (t ,V , I ) = f 2 (t ,V , I ) = I 1 R I V L LC

41

Você também pode gostar