En matemáticas y análisis numérico , se utiliza un tamaño de paso adaptativo en algunos métodos para la solución numérica de ecuaciones diferenciales ordinarias (incluido el caso especial de integración numérica ) con el fin de controlar los errores del método y garantizar propiedades de estabilidad como la estabilidad A. El uso de un tamaño de paso adaptativo es de particular importancia cuando hay una gran variación en el tamaño de la derivada. Por ejemplo, al modelar el movimiento de un satélite alrededor de la Tierra como una órbita estándar de Kepler , un método de pasos de tiempo fijos como el método de Euler puede ser suficiente. Sin embargo, las cosas son más difíciles si uno desea modelar el movimiento de una nave espacial teniendo en cuenta tanto la Tierra como la Luna como en el problema de los tres cuerpos . Allí, surgen escenarios en los que uno puede tomar grandes pasos de tiempo cuando la nave espacial está lejos de la Tierra y la Luna, pero si la nave espacial se acerca a colisionar con uno de los cuerpos planetarios, entonces se necesitan pequeños pasos de tiempo. El método de Romberg y el de Runge-Kutta-Fehlberg son ejemplos de métodos de integración numérica que utilizan un tamaño de paso adaptativo.
Para simplificar, el siguiente ejemplo utiliza el método de integración más simple, el método de Euler ; en la práctica, se prefieren métodos de orden superior como los métodos de Runge-Kutta debido a sus propiedades superiores de convergencia y estabilidad.
Consideremos el problema del valor inicial
donde y y f pueden denotar vectores (en cuyo caso esta ecuación representa un sistema de EDO acopladas en varias variables).
Se nos da la función f ( t , y ) y las condiciones iniciales ( a , y a ), y nos interesa hallar la solución en t = b . Sea y ( b ) la solución exacta en b , y sea y b la solución que calculamos. Escribimos , donde es el error en la solución numérica.
Para una secuencia ( t n ) de valores de t , con t n = a + nh , el método de Euler da aproximaciones a los valores correspondientes de y ( t n ) como
El error de truncamiento local de esta aproximación se define por
y por el teorema de Taylor , se puede demostrar que (siempre que f sea suficientemente suave) el error de truncamiento local es proporcional al cuadrado del tamaño del paso:
donde c es alguna constante de proporcionalidad.
Hemos marcado esta solución y su error con un .
No conocemos el valor de c . Apliquemos ahora de nuevo el método de Euler con un tamaño de paso diferente para generar una segunda aproximación a y ( t n +1 ). Obtenemos una segunda solución, que etiquetamos con a . Supongamos que el nuevo tamaño de paso es la mitad del tamaño de paso original y apliquemos dos pasos del método de Euler. Esta segunda solución es presumiblemente más precisa. Dado que tenemos que aplicar el método de Euler dos veces, el error local es (en el peor de los casos) el doble del error original.
Aquí, suponemos que el factor de error es constante en el intervalo . En realidad, su tasa de cambio es proporcional a . Al restar las soluciones, obtenemos la estimación del error:
Esta estimación de error local tiene una precisión de tercer orden.
La estimación del error local se puede utilizar para decidir cómo se debe modificar el tamaño del paso para lograr la precisión deseada. Por ejemplo, si se permite una tolerancia local de , podríamos dejar que h evolucione de la siguiente manera:
El es un factor de seguridad para garantizar el éxito en el siguiente intento. El mínimo y el máximo sirven para evitar cambios extremos con respecto al tamaño del paso anterior. En principio, esto debería dar un error de aproximadamente en el siguiente intento. Si , consideramos que el paso fue exitoso y la estimación del error se utiliza para mejorar la solución:
Esta solución es, en realidad, precisa en tercer orden en el ámbito local (en segundo orden en el ámbito global), pero como no hay una estimación de error para ella, no ayuda a reducir la cantidad de pasos. Esta técnica se denomina extrapolación de Richardson .
Partiendo de un tamaño de paso inicial de , esta teoría facilita nuestra integración controlable de la EDO desde el punto hasta , utilizando una cantidad óptima de pasos dada una tolerancia de error local. Una desventaja es que el tamaño del paso puede llegar a ser prohibitivamente pequeño, especialmente cuando se utiliza el método de Euler de orden bajo .
Se pueden desarrollar métodos similares para métodos de orden superior, como el método Runge-Kutta de cuarto orden. Además, se puede lograr una tolerancia de error global escalando el error local a un alcance global.
Los métodos de tamaño de paso adaptativo que utilizan una estimación de error denominada "integrada" incluyen los métodos Bogacki-Shampine , Runge-Kutta-Fehlberg , Cash-Karp y Dormand-Prince . Se considera que estos métodos son más eficientes desde el punto de vista computacional, pero tienen una menor precisión en sus estimaciones de error.
Para ilustrar las ideas del método integrado, considere el siguiente esquema que actualiza :
El siguiente paso se predice a partir de la información anterior .
Para el método RK integrado, el cálculo de incluye un método RK de orden inferior . El error puede escribirse simplemente como
es el error no normalizado. Para normalizarlo, lo comparamos con una tolerancia definida por el usuario, que consta de la tolerancia absoluta y la tolerancia relativa:
Luego comparamos el error normalizado contra 1 para obtener el valor predicho :
El parámetro q es el orden correspondiente al método RK , que tiene un orden inferior. La fórmula de predicción anterior es plausible en el sentido de que aumenta el paso si el error local estimado es menor que la tolerancia y lo reduce en caso contrario.
La descripción dada anteriormente es un procedimiento simplificado utilizado en el control de tamaño de paso para solucionadores RK explícitos. Se puede encontrar un tratamiento más detallado en el libro de texto de Hairer. [1] El solucionador de EDO en muchos lenguajes de programación utiliza este procedimiento como la estrategia predeterminada para el control de tamaño de paso adaptativo, que agrega otros parámetros de ingeniería para hacer que el sistema sea más estable.