Você está na página 1de 9

PMR3401 - Mecnica Computacional para Mecatrnica

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 ) (I)

y
k
2
y
i+1
k
1
y
i+1

h
x x x
i i+1
f ( xi , yi ) + f ( xi +1 , yi +1 )
yi +1 = yi + h
2
Assumindo:

k1 = f ( xi , yi ) (a=b=1/2)

k 2 = f ( xi + ph, yi + qhf ( xi , yi )) = f ( xi +1 , yi +1 )

Expandindo k2 em srie de Taylor:

33
PMR3401 - Mecnica Computacional para Mecatrnica

k 2 = f ( xi + ph, yi + qhf ( xi , yi )) = f ( xi , yi ) + phf x ( xi , yi ) + qhf ( xi , yi ) f y ( xi , yi ) + 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
y ( xi + h ) = y ( xi ) + hf ( xi , y ( xi )) + f ' ( xi , y ( xi )) + f " ( , y ( )) =
2! 3!
dy h 2 d 2 y h 3 d 3 y ( )
= y ( xi ) + h + +
dx 2! dx 2 3! dx 3
(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

0 y(xi) yi

1 f ( xi , y ( xi )) ( a + b ) f ( xi , y ( xi ))

2 1 bpf x ( xi , yi ) + bqf ( xi , yi ) f y ( xi , yi )
f x ( xi , y ( xi )) + f y ( xi , y ( xi )) f ( xi , y ( xi ))
2

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
PMR3401 - Mecnica Computacional para Mecatrnica

1 1
Escolhendo b = p = q =1 e a = (Mtodo de Heun)
2 2

k1 = f ( xi , yi )

k 2 = f ( xi + h , yi + hk1 )

ento:

1 1
y i +1 = yi + h k 1 + k 2
2 2

fazendo b = 1 a = 0 e p = q = 1/2

yi +1 = yi + hk 2

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

h h
y i +1 = yi + hf x i + , y i +1 2 onde y1+1 2 = yi + f ( xi , yi )
2 2

y
k
2
y
i+1

y k
i+1/2 1

h/2 h/2
x x x
i i+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
PMR3401 - Mecnica Computacional para Mecatrnica

Runge-Kutta de 3a ordem

yi +1 = yi + h(ak1 + 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
1
bp 2 + cr 2 =
2
1
cps =
6

Duas das contantes so escolhidas arbitrariamente. Para um determinado conjunto de constantes


escolhido por Kutta, tem-se o seguinte mtodo de 3a ordem

h
yi +1 = yi + (k + 4k 2 + k 3 )
6 1

k1 = f ( xi , yi )
h h
k 2 = f xi + , y i + k 1
2 2
k 3 = f ( xi + h, yi + 2hk 2 hk 1 )

dy
Equivale regra de Simpson se = f (x )
dx

36
PMR3401 - Mecnica Computacional para Mecatrnica

Runge-Kutta de 4a ordem (vrios mtodos dependendo da escolha das constantes). Segundo


Kutta:

h
yi +1 = yi +
6 1
(k + 2k 2 + 2k 3 + k 4 )
k1 = f ( xi , yi )
h h
k 2 = f xi + , y i + k 1
2 2
h h
k 3 = f x i + , yi + k 2
2 2
k 4 = f ( xi + h, yi + 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: et = Kh m+1 + O( h m+ 2 )

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

Empregando a extrapolao de Richardson:

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


m +1 (xn+1 xn ) (1)
h1
(x n +1 xn )
y n*+1 yn +1,2 = Kh2 m+1 (2)
h2
onde xn+1-xn equivale ao nmero de passos.
Dividindo (1) por (2) tem-se:

37
PMR3401 - Mecnica Computacional para Mecatrnica

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


m
*
y n +1 = (3)
1 (h1 h2 )
m

escolhendo h2 = h1 2 tem-se:

yn +1,1 2 m yn +1,2
yn*+1 = (4)
1 2m

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 ) (5)
m
2 1

Para o algoritmo de Runge-Kutta de 4a ordem (m = 4)

16
et = Kh15 =
y
15 n +1,2
y n +1,1 ( )
Usando esse procedimento para monitorar o erro, o nmero de clculos triplicado.

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 k1 ) 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 , L , y n )
dx
dy 2 dy
= f 2 ( x , y1 , y 2 ,L , y n ) ou dx = [f ]
dx
M
dy n
= f n ( x , y1 , y 2 ,L , y n )
dx

com condies iniciais:

y1 ( x0 ) = y10
y2 ( x0 ) = y2 0 ou [y ] = [y 0 ]
M

38
PMR3401 - Mecnica Computacional para Mecatrnica

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 = y2i + hk 2 2 ou [y i +1 ] = [y i ] + h[k 2 ]
M
y ni +1 = y ni + hk 2n
onde:
(
k11 = f 1 xi , y1i , y 2i ,L y ni )
k 12 = f (x , y
2 i 1i , y 2i ,L y )
ni ou [k 1 ] = [f ( xi , [y i ])]
M
(
k1n = f n xi , y1i , y 2i ,L y ni )
h h h h
k 21 = f 1 xi + , y1i + k11 , y 2i + k12 ,L y ni + k1n
2 2 2 2
h h h h h h
k 22 = f 2 xi + , y1i + k11 , y 2i + k12 ,L y ni + k1n ou [k 2 ] = f ( xi + , [y i ] + [k 1 ])
2 2 2 2 2 2
M
h h h h
k 2n = f n xi + , y1i + k11 , y 2i + k12 ,L y ni + k1n
2 2 2 2

Exemplo: Aplicar R.K 4 seguinte equao diferencial (problema resolvido no livro do


Carnahan, pgina 367):

d 2V dV
LC 2
+ RC +V = 0 (circuito eltrico RLC)
dt dt
sujeita s seguintes condies iniciais:

V ( 0) = V0 (tenso eltrica no capacitor)

dV dV
=0 (corrente eltrica no circuito: i = C )
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
PMR3401 - Mecnica Computacional para Mecatrnica

dV
=I
dt

podemos escrever a equao do circuito como:

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

dI R 1
= I V
dt L LC
dV
=I
dt

com condies iniciais:

V ( 0) = V0
I ( 0) = 0

Aplicando Runge-Kutta de 4a ordem:

h
I i +1 = I i + (k + 2k 2 + 2k 3 + k 4 )
6 1
h
Vi +1 = Vi + (q1 + 2q 2 + 2q 3 + q 4 )
6

onde:
k 1 = f 1 (t i ,Vi , I i )
h h h
k 2 = f 1 t i + ,Vi + q1 , I i + k1
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
PMR3401 - Mecnica Computacional para Mecatrnica

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

f 2 ( t ,V , I ) = I

41

Você também pode gostar