Você está na página 1de 14

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE

PERNAMBUCO

MÉTODO RUNGE-KUTTA PARA RESOLUÇÃO DE EQUAÇÕES


DIFERENCIAIS ORDINÁRIAS

ANTÔNIO RODRIGUES FREITAS DE CARVALHO


EDUARDO DE OLIVEIRA SANTOS
GENILSON PEREIRA DO NASCIMENTO
GISLÂNIO LUÍS CORREIA DE SOUZA FILHO
LUCAS FELIPE DE VASCONCELOS

CARUARU, 2018
ANTÔNIO RODRIGUES FREITAS DE CARVALHO
EDUARDO DE OLIVEIRA SANTOS
GENILSON PEREIRA DO NASCIMENTO
GISLÂNIO LUÍS CORREIA DE SOUZA FILHO
LUCAS FELIPE DE VASCONCELOS

MÉTODO RUNGE-KUTTA PARA RESOLUÇÃO DE EQUAÇÕES


DIFERENCIAIS ORDINÁRIAS

Produção acadêmica apresentada


como requisito parcial para obtenção
de nota para a segunda unidade da
disciplina Cálculo Numérico em
2018.2, pelo Curso de Engenharia
Mecânica do Instituto Federal de
Pernambuco – Campus Caruaru.

Orientador: Prof. Msc. Paulo Henrique

CARUARU, 2018
SUMÁRIO

1 – INTRODUÇÃO..................................................................................
2 – OBJETIVOS......... ................................................................................
3 – FUNDAMENTAÇÃO TEÓRICA E EXEMPLIFICAÇÃO...............................
3.1 – Métodos de passos simples..................................................
3.2 – Métodos com derivadas........................................................
3.3 – Método de Runge-Kutta de primeira ordem...................
3.4 – Método de Runge-Kutta de segunda ordem........................
3.5 – Método de Runge-Kutta de terceira ordem........................
3.6 – Método de Runge-Kutta de quarta ordem........................
3.7 – Método Runge-Kutta-Fehlberg RKF45.................................
4 – CONSIDERAÇÕES FINAIS...............................................................
5 – REFERÊNCIAS ...................................................................................
1 - INTRODUÇÃO
Métodos numéricos são de extrema importância, pois nos auxiliam na
resolução de muitos problemas matemáticos e físicos, que na maioria das vezes
são modelados por equações diferenciais ordinárias complexas, e os métodos
numéricos surgem como alternativa para se resolver essas equações e obter
resultados que quase sempre não podem ser conseguidos por procedimentos
reais. Dentre os métodos numéricos utilizados na resolução de equações
diferenciais ordinárias destaca-se os Métodos de Runge-Kutta, pela simplicidade
de implementação computacional e facilidade na obtenção das aproximações
dos resultados, diferentemente dos métodos cujo desenvolvimento parte da
expansão em série de Taylor.
O ponto chave destes métodos é aproveitar as vantagens dos métodos de
série de Taylor e em contra partida eliminar sua maior desvantagem que é o
cálculo de derivadas de f(x,y). Podemos caracterizar esse método em três
propriedades:
1) São de passo um;
2) Não exigem o cálculo de qualquer derivada de f(x,y); pagam, por isso, o preço
de calcular f(x,y) em vários pontos;
3) Após expandir f(x,y) por Taylor para função de duas variáveis em torno de
(xn, yn) e agrupar os termos semelhantes, sua expressão coincide com a do
método de série de Taylor de mesma ordem.
Segundo Barroso Et Al., neste método é possível melhora a precisão dos
resultados sem diminuir consideravelmente o valor dos intervalos. Tendo em
vista que o erro acumulado com o uso do método de Euler se dá por ELT (erro
local de truncamento) e pelo fator de propagação de erro, se tratando de uma
malha com maior números de pontos, esses erros tendem a aumentar, sendo o
método de Runge-Kutta mais indicado nessas ocasiões.
A expressão do método de Runge-Kutta de ordem m é expressa pela equação
a seguir
𝑚

𝑦𝑖+1 = 𝑦𝑖 + ∑(𝑎𝑗 × 𝑘𝑗 )
𝑗=1

Onde:
𝑖: varia de 0 até 𝑛 – 1
𝑎𝑗 : são constantes para cada método de ordem m;

𝑘1 : ℎ × 𝑓(𝑥𝑖, 𝑦𝑖);
𝑗−1

𝑘𝑗 ∶ ℎ × 𝑓(𝑥𝑖 + 𝑝𝑗. ℎ, 𝑦𝑖) + ∑(𝑟𝑗,1 × 𝑘1 )


𝑖=1
Em que 𝑝𝑗 e 𝑟𝑗,1 são constantes para cada método de ordem m, para j > 1.

2 – OBJETIVOS
Em uma abordagem mais ampla, pode-se dizer que esse trabalho tem por
principal objetivo apresentar o conceito dos métodos da família Runge-Kutta
para resolução de Equações Diferenciais Ordinárias, bem como expor também
aspectos do cálculo computacional e numérico para os mesmos. Em termos
específicos esse trabalho tem por objetivo:
 Apresentar conceitos dos métodos de EDO’s de primeira à quarta
ordem pela resolução de Runge-Kutta;
 Mostrar os métodos adaptativos da resolução Runge-Kutta, através do
método RKF45;
 Promover ao aluno um melhor entendimento sobre resolução de
problemas de valor inicial para EDO’s.

3 – FUNDAMENTAÇÃO TEÓRICA E EXEMPLIFICAÇÃO

3.1 - Métodos de Passo Simples


Uma forma de resolver um PVI (Problema de valor inicial) é denominada
de passo simples se a aproximação yj+1 depende apenas do resultado yj da etapa
anterior. Uma formula geral para os métodos de passo simples pode ser escrita
da seguinte forma:
𝑦𝑗+1 = 𝑦𝑗 + ℎ × ∅(𝑥𝑗 , 𝑦𝑗 ; ℎ) , j = 0,1,..., m – 1

Onde ∅ é a função incremento e h o comprimento do passo.


Um exemplo é o método de Euler 𝑦𝑗+1 = 𝑦𝑗 + ℎ × 𝑓(𝑥𝑗 , 𝑦𝑗 ), onde a função
incremento ∅(𝑥𝑗 , 𝑦𝑗 ; ℎ) = 𝑓(𝑥𝑗 , 𝑦𝑗 ).

3.2 – Métodos com Derivadas


Teoricamente, pode-se afirmar que a fórmula de Taylor fornece tantos
métodos quantos se queiram, contanto que se calculem as derivadas
necessárias, desta forma
ℎ2
𝑦𝑗+1 = 𝑦𝑗 + ℎ × 𝑦 ′ (𝑥𝑗 ) + × 𝑦"(𝑥𝑗 ), 𝑗 = 0,1, … , 𝑚 − 1
2!
ℎ3
é um método de passo simples e ordem dois com ELT = × 𝑦 ′′′ (𝜀), 𝑥𝑗 < 𝜀 <
3!
𝑥𝑗+1
Onde:

𝑦 ′ (𝑥𝑗 ) = 𝑓(𝑥𝑗 , 𝑦𝑗 )

𝜕𝑓 𝜕𝑓
𝑦 ′′ (𝑥𝑗 ) = (𝑥𝑗 , 𝑦𝑗 ) + 𝑓(𝑥𝑗 , 𝑦𝑗 ) × (𝑥 , 𝑦 )
𝜕𝑥 𝜕𝑦 𝑗 𝑗

Como exemplo acharemos uma aproximação para a solução do PVI


𝑦′ = 𝑥 − 𝑦 + 2
{ em uma malha de [0,1] com h = 0,1.
𝑦(0) = 2
X0 = 0 ; y0 = 2 ; a = 0 ; b = 1;
𝑏−𝑎
𝑚=

𝑚 = 10

ℎ2
Para j = 0: 𝑦1 = 𝑦0 + ℎ × (𝑥0 − 𝑦0 + 2) + × (−𝑥0 + 𝑦0 − 1)
2!

(0,1)2
𝑦1 = 2 + 0,1 × (0 − 2 + 2) + × (−0 + 2 − 1)
2!
𝒚𝟏 = 𝟐, 𝟎𝟎𝟓

Calculando o x para a próxima interação:


𝑥1 = 𝑥0 + ℎ
𝑥1 = 0 + 0,1
𝒙𝟏 = 𝟎, 𝟏
Com isso:
ℎ2
Para j = 1: 𝑦2 = 𝑦1 + ℎ × (𝑥1 − 𝑦1 + 2) + × (−𝑥1 + 𝑦1 − 1)
2!

0,12
𝑦2 = 2,005 + 0,1 × (0,1 − 2,005 + 2) + × (−0,1 + 2,005 − 1)
2!
𝒚𝟐 = 𝟐, 𝟎𝟏𝟗𝟎𝟐𝟓

𝑥2 = 𝑥1 + ℎ
𝑥2 = 0,1 + 0,1
𝒙𝟐 = 𝟎, 𝟐
Repetindo esse processo até j = 9, obtemos os valores abaixo:

3.3 – Método de Runge-Kutta de 1ª Ordem


Seja a EDO y’ = f(x,y), com condições iniciais x0 e y0. Deseja-se obter y =
f(x), para x =x . Da expressão geral de Runge-Kutta para 1ª ordem temos:

𝑦𝑖+1 = 𝑦1 + 𝑎1 × 𝑘1
Onde:
𝑎1 – Constante para o método de ordem 1;
𝑘1 - ℎ × 𝑓(𝑥1 , 𝑦1 );
Assim:
𝑦𝑖+1 = 𝑦1 + ℎ × 𝑓(𝑥1 , 𝑦1 )
Podemos notar, o método de Ruge – Kutta de primeira ordem se assemelha ao
método de Euler.
Como exemplo acharemos uma aproximação para a solução do PVI
𝑦′ = 𝑥 − 𝑦 + 2
{ em uma malha de [0,1] com h = 0,1.
𝑦(0) = 2
X0 = 0 ; y0 = 2 ; a = 0 ; b = 1;
𝑏−𝑎
𝑚=

𝑚 = 10
Para j = 0: 𝑦1 = 𝑦0 + ℎ × (𝑥0 − 𝑦0 + 2)
𝑦1 = 2 + 0,1 × (0 − 2 + 2)
𝒚𝟏 = 𝟐, 𝟎𝟎

Calculando o x para a próxima interação:


𝑥1 = 𝑥0 + ℎ
𝑥1 = 0 + 0,1
𝒙𝟏 = 𝟎, 𝟏
Com isso:
Para j = 1: 𝑦2 = 𝑦1 + ℎ × (𝑥1 − 𝑦1 + 2)
𝑦2 = 2,005 + 0,1 × (0,1 − 2,005 + 2)
𝒚𝟐 = 𝟐, 𝟎𝟏

𝑥2 = 𝑥1 + ℎ
𝑥2 = 0,1 + 0,1
𝒙𝟐 = 𝟎, 𝟐
Repetindo esse processo até j = 9, obtemos os valores abaixo:
3.4 – Método de Runge-Kutta de 2ª Ordem
3.5 – Método de Runge-Kutta de 3ª Ordem
Adotando o mesmo procedimento de dedução da expressão do método
anterior, encontramos, a partir da expressão do método anterior, a forma geral
para terceira ordem.
2 1 4
𝑦𝑖+1 = 𝑦𝑖 + ( × 𝑘1 ) + ( × 𝑘2 ) + ( × 𝑘3 )
9 3 9

Onde 𝑘1 , 𝑘2 e 𝑘3 são aproximações das derivadas em vários pontos no


intervalo de integração [𝑥𝑖 , 𝑥𝑖+1 ]. Nesse caso,
𝑘1 = ℎ × 𝑓(𝑥𝑖 , 𝑦𝑖 );
ℎ 𝑘1
𝑘2 = ℎ × 𝑓 (𝑥𝑖 + , 𝑦𝑖 + ) ;
2 2
3×ℎ 3 × 𝑘1
𝑘3 = ℎ × 𝑓 (𝑥𝑖 + , 𝑦𝑖 + );
4 4
Onde:
𝑖 = 1,2,3, … , 𝑛 − 1;
ℎ = 𝑝𝑎𝑠𝑠𝑜 𝑑𝑒 𝑣𝑎𝑙𝑜𝑟 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 𝑢𝑡𝑖𝑙𝑖𝑧𝑎𝑑𝑜 𝑝𝑎𝑟𝑎 𝑝𝑒𝑟𝑐𝑜𝑟𝑟𝑒𝑟 𝑒𝑠𝑠𝑒 𝑖𝑛𝑡𝑒𝑟𝑣𝑎𝑙𝑜;
Temos que nesse método o erro por passo é na ordem de ℎ4 e o erro
total acumulado é de ℎ3 .
Exemplo: Use o método de Runge-Kutta de 3ª ordem para resolver o seguinte
problema de valor inicial:
𝑦 ′ = 3𝑥 2 − 𝑦
{
𝑃𝑎𝑟𝑎 𝑥 = 0,0, 𝑡𝑒𝑚 − 𝑠𝑒 𝑦 = 1,0
Intervalo de integração: [0,0 ; 0,1], a ser percorrido com passo constante h=0,1.
Resolução:
𝒊 𝒙𝒊 𝒚𝟏 𝒌𝟏 𝒌𝟐 𝒌𝟑
𝟏 0,0 1,0 −0,1 −0,9425 −0,0908
𝟐 0,1 𝟎, 𝟗𝟎𝟓𝟖

Para 𝑖 = 1, temos que:


 𝑥1 = 0,0
 𝑦1 = 1,0
 ℎ = 0,1
Então:

 𝑘1 = ℎ × 𝑓(𝑥1 , 𝑦1 ) = 0,1 × 𝑓(0,0 ; 0,1) = −𝟎, 𝟏


ℎ 𝑘1
 𝑘2 = ℎ × 𝑓 (𝑥1 + 2 , 𝑦1 + ) = 0,1 × 𝑓(0,05 ; 0,95) = −𝟎, 𝟎𝟗𝟒𝟐𝟓
2
3×ℎ 3×𝑘1
 𝑘3 = ℎ × 𝑓 (𝑥1 + , 𝑦1 + ) = 0,1 × 𝑓(0,075 ; 0,925) = −𝟎, 𝟎𝟗𝟎𝟖
4 4

Logo:
2 1 4
𝑦2 = 1,0 + [ × (−0,1) ] + [ × (−0,09425) ] + [ × (−0,0908) ]
9 3 9
𝑦2 = 1,0 + (−0,0222) + (−0,03142) + (−0,04036)
𝒚𝟐 = 𝟎, 𝟗𝟎𝟔𝟎𝟐

3.6 – Método de Runge-Kutta de 4ª Ordem

3.7 – Método de Runge-Kutta-Fehlberg RKF45


O método de Runge-Kutta-Fehlberg é um algoritmo de análise numérica
para resolução de equações diferenciais ordinárias. A grande vantagem
associada a esse método está na combinação dos métodos de Runge-Kutta de
4ª e 5ª ordem. O método é de ordem O(h 4 ) e o estimador de erro trata-se da
ordem O(h5).
Até agora, todos os métodos da família Runge-Kutta resolviam equações
diferenciais dadas por:
𝑑𝑦
= 𝑓(𝑥, 𝑦)
𝑑𝑥
Com x sendo a variável independente e y a variável dependente. Os
métodos encontravam o valor de y a partir de um certo correspondente individual,
mais um fator multiplicador do acréscimo h:
𝑦𝑖+1 = 𝑦𝑖 + 𝜙ℎ
A grande limitação associada a essa solução está no esforço
computacional que será usado caso tenha-se um avanço h muito pequeno para
regiões de pouca mudança brusca no comportamento da função e também caso
o contrário ocorra, adotando-se intervalos muito espaçados, ao estar avaliando
os correspondentes de f na região de função com comportamento de mudança
brusca, haverá perda de informação para um determinado trecho.
Por exemplo, no gráfico abaixo:
 Um h maior, haveria perda de aproximação para a resolução do
PVI na região de c-d;
 Um h menor, haveria muito esforço computacional para a resolução
da EDO no trecho a-b;

Portanto, os métodos explícitos não garantem uma acurácia satisfatória para


funções desse tipo. É, portanto, feito uma série de adaptações dos métodos
Runge-Kutta e o mais conhecido é o Runge-Kutta-Fehlberg. Algumas vantagens
dos métodos adaptativos:
 Tamanho de passo adaptável;
 Possibilidade de estimativa de erro;
 Combinar métodos de resolução de EDO’s de ordens diferentes;

Uma maneira de avaliar a precisão de uma solução de um problema de valor


inicial é resolver o problema duas vezes usando o incremento h e depois h/2 e
comparar os valores nos pontos em comum. Isto significa fazer três vezes mais
cálculos que no caso de obter a solução para um determinado incremento h.
Enquanto no Runge-Kutta de quarta ordem avaliamos quatro vezes f(x,y), neste
método avaliamos seis vezes esta função. Mesmo assim, isto é a metade do que
avaliaríamos f(x,y) se executássemos o algoritmo com passo h e depois com
passo h/2 o Runge-Kutta de quarta ordem.
Em geral, os métodos adaptativos combinam dois métodos para satisfazer o
valor de y:
 Método 1: 𝑦𝑘+1
 Método 2: 𝑧𝑘+1 de ordem superior ao primeiro

Portanto a estimativa de erro para o método RK45:


|𝑦𝑘+1 − 𝑧𝑘+1 | = 𝑒𝑟𝑟𝑜
O esquema do método é o seguinte:

A aproximação da quarta ordem é dada por:

E a de quinta ordem:

Exemplo: Comparar a solução de RK4 com RKF45 para o seguinte problema de


valor inicial no intervalo que é a solução exata é y(tk) = tan(tk) [0; 1,4].
𝑦′ = 1 + 𝑦2, 𝑦(0) = 0
Fazendo primeiramente RK4, com um h = 0,1; o método gerou 14 aproximações
do valor de yk para esse PVI.
Para a resolução por meio do método adaptativo RKF45, foi estipulado a
tolerância de 2 × 10−5 , lembrando que o método muda de h a cada iteração o
que nos gerou um número reduzido de aproximações ao comparar com RK4:

As aproximações no último ponto foram, respectivamente para RKF45 e RK4:


𝑦(1,4) ≈ 𝑦10 = 5,7985045
𝑦(1,4) ≈ 𝑦14 = 5,7919748
A solução correta para essa EDO no ponto de análise é de 5,7978837; portanto
o método de Fehlberg além de possuir uma acurácia maior, exige menos
processamento computacional.