En análisis numérico , el algoritmo Bulirsch-Stoer es un método para la solución numérica de ecuaciones diferenciales ordinarias que combina tres ideas poderosas: la extrapolación de Richardson , el uso de la extrapolación de funciones racionales en aplicaciones de tipo Richardson, y el método del punto medio modificado , para obtener valores numéricos. soluciones a ecuaciones diferenciales ordinarias (EDO) con alta precisión y comparativamente poco esfuerzo computacional. Lleva el nombre de Roland Bulirsch y Josef Stoer . A veces se denomina algoritmo de Gragg – Bulirsch – Stoer (GBS).debido a la importancia de un resultado sobre la función de error del método del punto medio modificado, debido a William B. Gragg .
Ideas subyacentes
La idea de la extrapolación de Richardson es considerar un cálculo numérico cuya precisión depende del tamaño de paso h utilizado como una función analítica (desconocida) del tamaño de paso h , realizando el cálculo numérico con varios valores de h , ajustando una función analítica (elegida) a la puntos resultantes, y luego evaluar la función de ajuste para h = 0, tratando así de aproximar el resultado del cálculo con pasos infinitamente finos.
Bulirsch y Stoer reconocieron que el uso de funciones racionales como funciones de ajuste para la extrapolación de Richardson en la integración numérica es superior al uso de funciones polinomiales porque las funciones racionales son capaces de aproximar funciones con polos bastante bien (en comparación con funciones polinomiales), dado que hay suficientes funciones de mayor potencia términos en el denominador para dar cuenta de los polos cercanos. Si bien una interpolación o extrapolación polinomial solo produce buenos resultados si el polo más cercano está bastante lejos de un círculo alrededor de los puntos de datos conocidos en el plano complejo, la interpolación o extrapolación de funciones racionales puede tener una precisión notable incluso en presencia de polos cercanos.
El método del punto medio modificado en sí mismo es un método de segundo orden y, por lo tanto, generalmente es inferior a los métodos de cuarto orden como el método de Runge-Kutta de cuarto orden . Sin embargo, tiene la ventaja de requerir solo una evaluación derivada por subpaso (asintóticamente para un gran número de subpasos) y, además, como descubrió Gragg, el error de un paso de punto medio modificado de tamaño H , que consta de n subpasos de tamaño h = H / n cada uno, y expresado como una serie de potencias en h , contiene sólo potencias pares de h . Esto hace que el método del punto medio modificado sea extremadamente útil para el método Bulirsch-Stoer, ya que la precisión aumenta dos órdenes a la vez cuando se combinan los resultados de intentos separados de cruzar el intervalo H con un número creciente de subpasos.
Hairer, Nørsett y Wanner (1993 , p. 228), en su discusión del método, dicen que la extrapolación racional en este caso casi nunca es una mejora con respecto a la interpolación polinomial ( Deuflhard 1983 ). Además, el método del punto medio modificado es una modificación del método del punto medio regular para hacerlo más estable, pero debido a la extrapolación, esto realmente no importa ( Shampine y Baca 1983 ).
Referencias
- Deuflhard, Peter (1983), "Control de orden y tamaño de paso en métodos de extrapolación", Numerische Mathematik , 41 (3): 399–422, doi : 10.1007 / BF01418332 , ISSN 0029-599X.
- Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard (1993), Resolución de ecuaciones diferenciales ordinarias I: Problemas no rígidos , Berlín, Nueva York: Springer-Verlag , ISBN 978-3-540-56670-0.
- Presione, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). "Sección 17.3. Extrapolación de Richardson y el método Bulirsch-Stoer" . Recetas numéricas: el arte de la informática científica (3ª ed.). Nueva York: Cambridge University Press. ISBN 978-0-521-88068-8.
- Shampine, Lawrence F .; Baca, Lorraine S. (1983), "Suavizando la regla del punto medio extrapolado", Numerische Mathematik , 41 (2): 165–175, doi : 10.1007 / BF01390211 , ISSN 0029-599X.
enlaces externos
- ODEX.F , implementación del algoritmo Bulirsch – Stoer por Ernst Hairer y Gerhard Wanner (para otras rutinas y condiciones de licencia, vea su página de Códigos Fortran y Matlab ).
- Biblioteca BOOST , implementando el algoritmo Bulirsch-Stoer por biblioteca boost).