6.1.3 Equações Diferenciais Ordinárias — Métodos de Runge-Kuta — Método do Ponto Médio
O método do ponto médio é uma abordagem do tipo preditor-corretor, que utiliza o método de Euler para prever um valor no ponto médio do intervalo. Isto é,
é usado como predito para calcular a inclinação do ponto médio:
que é a aproximação da inclinação média para todo intervalo. Essa inclinação é então usada para extrapolar o novo valor de ,
que é a fórmula do método do ponto médio.
1. Implementação
def integral_midpoint(f, xi, xe, y0, n=1e6):
"""
Numerical integration for solve ODE's using Midpoint Method
integral = integral_midpoint(f, xi, xe, n=1e6)
INPUT:
* f: derivative function f(x, y) = dy/dx
* xi: beginning of integration interval
* xe: end of integration interval
* y0: initial estimative for y
* n: number of points used
return: \int_{xi}^{xe} f(x)
Author: Pedro Garcia [sawp@sawp.com.br]
see: http://www.sawp.com.br
License: Creative Commons
http://creativecommons.org/licenses/by-nc-nd/2.5/br/
Sep 2012
"""
def midpoint(x, y, h):
pred = y + f(x, y) * h / 2.0
corr = y + f(x + h / 2.0, pred) * h
return (x + h, corr)
def integrator(x, y, h, n):
for i in xrange(n):
(x, y) = midpoint(x, y, h)
return y
(y, x) = (y0, xi)
h = abs(xe - xi) / n
return integrator(x, y, h, int(n))
Um exemplo de utilização dessa função pode ser obtido em http://www.sawp.com.br/code/ode/midpoint.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/.