6.1.6 Equações Diferenciais Ordinárias — Métodos de Runge-Kuta — Runge-Kuta Clássico (Quarta Ordem)

Os métodos de Runge-Kuta mais utilizados são variantes do método de quarta ordem. Como nos casos apresentados nos posts sobre RK de segunda e terceira ordem, há um número infinito de métodos para \(n=4 \) . Uma fórmula muito encontrada e, por isso, conhecida como “método de Runge-Kuta clássico”, é:

\( y_{i+1} = y_i + \frac{1}{6} (k_1 + 2 k_2 + 2 k_3 + k_4) h \)

onde


\( k_1 = f(x_1, y_1) \)


\(k_2 = f(x_i + \frac{1}{2} h, y_i + \frac{1}{2} k_1 h) \)


\(k_3 = f(x_i + \frac{1}{2} h, y_i + \frac{1}{2} k_2 h) \)

e

\(k_4 = f(x_i + h, y_i + k_3 h) \)

Dessas equações, notamos que o método de Runge-Kuta de quarta ordem clássico usa a regra de Simpson, sendo uma abordagem semelhante à de Heun, uma vez que são desenvolvidas múltiplas estimativas da inclinação para se chegar a uma inclinação melhorada do intervalo. Isso é, conforme comentado no post sobre o RK de segunda ordem, cada um dos \(k \) ‘s representa uma inclinação, o que faz com que

\( \phi = (k_1 + 2 k_2 + 2 k_3 + k_4) \)

seja uma média ponderada dessas inclinações.

 

1. Implementação

 

def ralston4order(f, x, y, h):
    k1 = f(x, y)
    k2 = f(x + 0.5 * h, y + 0.5 * k1 * h)
    k3 = f(x + 0.5 * h, y + 0.5 * k2 * h)
    k4 = f(x + h, y + k3 * h)
    y1 = y + (1. / 6.) * (k1 + 2 * k2 + 2 * k3 + k4) * h
    x1 = x + h
    return (x1, y1)

Um exemplo de utilização dessa função pode ser obtido em http://www.sawp.com.br/code/ode/runge_kuta_order_4.py.

 

2. Copyright

Este documento é disponível sob a licença Creative Commons. As regras dos direitos de cópia deste conteúdo estão acessíveis em http://creativecommons.org/licenses/by-nc-nd/2.5/br/.

References


[1] Anthony Ralston and Philip Rabinowitz, A First Course in Numerical Analysis (2nd ed.), McGraw-Hill and Dover, (2001).
[2] N.B Franco, Cálculo Numérico, Pearson Prentice Hall (2006).