Teoria

Introdução

Mas que raios de método com nome estranho é esse? Seguinte, vem comigo.

Dos métodos numéricos que nós conhecemos que servem para calcular a solução aproximada de problemas de valor inicial (PVI), os métodos de Runge-Kutta são os mais utilizados.

Isso acontece, devido a sua simplicidade e precisão, bem próximo aos métodos de Taylor. Só que diferença é que ele é mais vantajoso, já que conseguimos fugir daquelas derivadas de ordem elevada, que além de ser mega complicado de resolver, exigiria um esforço gigante computacional.

E muito pelo contrário, é um método baseado em avaliar a função f ( x , y ) em alguns pontos. Os métodos de Runge-Kutta simplesmente pegam as coisas boas do método de série de Taylor e tiram as derivadas haha. Show de bola né?

E eles tem três propriedades principais:

  1. São de passo 1;
  2. Não precisa calcular derivada nenhuma! No lugar, calculamos f x , y ou f t , y ;
  3. A fórmula do método concorda com a do método de série de Taylor até os termos da ordem do método.

Pela propriedade 3 deu pra perceber que esse método tem diferentes ordens né? Vamos dar uma olhada nelas!

Métodos de 1ª ordem

O método de Runge-Kutta de primeira ordem é o mais simples. Não tem muitos parâmetros para determinar, e coincide com o método de Euler e também com o de Taylor de ordem 1.

Hmmm... como assim?

A série de Taylor de primeira ordem fica assim:

y n + 1 = y n + h y n '

Como vimos ali encima, a diferença do método de Runge-Kutta (RK) para o método de Taylor é que em RK nós simplesmente tiramos a derivada e trocamos por f t n , y n :

y n + 1 = y n + h f ( t n , y n )

Reconheceu? É o método de Euler! Coisa que nós já conhecemos bem!

Métodos de 2ª ordem

Os métodos de Runge-Kutta de segunda ordem têm a seguinte fórmula geral:

y n + 1 = y n + h α 1 f t n , y n + h α 2 f t n + h β 1 , y n + h β 2 f t n , y n

Eita! Ta feio isso né? Podemos substituir aí α 1 = α 2 = 1 2 e β 1 = β 2 = 1 . Vai ficar mais ou menos assim:

y n + 1 = y n + h 2 f t n , y n + f t n + 1 , y n + h f t n , y n

Não sei pra você.... mas isso me lembra alguma coisa! O método de Euler Aperfeiçoado... pois é, é mais um método de Runge-Kutta que nós conhecemos bem.

Só pra recapitular, tem umas condições pra que nosso atual método (RK) combine com o ex (Série de Taylor de 2ª ordem) hahahahaha.

Vamos precisar que:

α 1 + α 2 = 1 α 2 β 1 = 1 2 α 1 β 2 = 1 2

Seguindo essas condições, existem infinitos métodos além do de Euler Aperfeiçoado que são métodos de Runge-Kutta de 2ª ordem.

Métodos de ordem superior

Existem métodos de Runge-Kutta para a ordem que quisermos, vamos dar uma olhadinha em 3ª e 4ª ordem:

3ª ordem:

y n + 1 = y n + 2 9 k 1 + 1 3 k 2 + 4 9 k 3

k 1 = h f t n , y n

k 2 = h f t n + h 2 , y n + k 1 2

k 3 = h f t n + 3 4 h , y n + 3 4 k 2

O método de RK de quarta ordem é bem popular, tem uma abordagem parecida com o de Euler modificado, já que ele deseja desenvolver várias estimativas para a inclinação e utiliza a média para melhorar o intervalo.

4ª ordem:

y n + 1 = y n + 1 6 k 1 + 2 k 2 + 2 k 3 + k 4

k 1 = h f t n , y n

k 2 = h f t n + h 2 , y n + k 1 2

k 3 = h f t n + h 2 , y n + k 2 2

k 4 = h f t n + h , y n + k 3

É isso aí, meio ruim de gravar né? Pode ser que seu professor nem cobre ou ensine esses de ordem mais alta, mas é melhor prevenir haha.

O grande problema, é que depois da 4ª ordem aumenta a complexidade computacional.

Considerações finais

Apesar dos métodos de Runge-Kutta corrigirem um problema que é o cálculo de derivadas, eles não são perfeitos. Temos a desvantagem de não existir uma maneira simples de estimarmos o erro, portanto pode ser difícil escolher um h .

Para a nossa sorte, 99% das vezes esse h é dado e não precisamos entrar nessa parte de estimação de erros 😉

Algoritmo

Então, o que fazemos aqui é simplesmente adicionar mais termos a medida que aumentamos a ordem! Então uma possibilidade pra implementar esses métodos seria pegar o algoritmo do método de Euler Aperfeiçoado e só mudar a função de iteração, sem muito mistério.

Métodos de 1ª ordem

Métodos de 2ª ordem

Métodos de ordem superior

Considerações finais

Algoritmo

Exercícios de Livros Relacionados