Escolar Documentos
Profissional Documentos
Cultura Documentos
= 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 , 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 )
34
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
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 )
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
36
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 )
(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
* n +1
(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
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 )
ou
[y ] = [y 0 ]
38
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:
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
40
sendo: f 1 (t ,V , I ) = f 2 (t ,V , I ) = I 1 R I V L LC
41