6.1.5 Equações Diferenciais Ordinárias — Métodos de Runge-Kuta — Método de Runge-Kuta de Terceira Ordem
Conforme mostrado no post do método de Runge-Kuta de segunda ordem, a EDO é resolvida pela fórmula iterativa:
onde é a função incremento, que quanto mais elementos possuir, mais acurada é a aproximação:
onde os são constantes a serem determinadas e os termos são combinações lineares da função diferencial a ser resolvida. Como visto naquele mesmo post, o número de ‘s escolhidos determina o grau do método de Runge-Kuta.
Quando , a dedução segue parecida com a dos métodos de segunda ordem, aumentando apenas o número de incógnitas e equações. Mais especificamente, enquanto nos métodos de ordem dois tínhamos que determinar apenas uma incógnita , na terceira ordem temos de especificar valores para duas das oito incógnitas. Ralston e Rabinowitz[1] fornecem os valores das incógnitas para que o erro de truncamento tenha limitante mínimo. Para isso, resolvemos iterativamente o problema com a fórmula
onde
e
1. Implementação
def ralston3order(f, x, y, h):
k1 = f(x, y)
k2 = f(x + 0.5 * h, y + 0.5 * k1 * h)
k3 = f(x + h, y - k1 * h + 2 * k2 * h)
y1 = y + (1. / 6.) * (k1 + 4 * k2 + k3) * 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_3.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/.