Los métodos numéricos para ecuaciones diferenciales ordinarias son métodos que se utilizan para encontrar aproximaciones numéricas a las soluciones de ecuaciones diferenciales ordinarias (EDO). Su uso también se conoce como " integración numérica ", aunque este término también puede referirse al cálculo de integrales .
Muchas ecuaciones diferenciales no se pueden resolver con exactitud. Sin embargo, para fines prácticos (por ejemplo, en ingeniería), una aproximación numérica a la solución suele ser suficiente. Los algoritmos estudiados aquí se pueden utilizar para calcular dicha aproximación. Un método alternativo es utilizar técnicas de cálculo para obtener una expansión en serie de la solución.
Las ecuaciones diferenciales ordinarias ocurren en muchas disciplinas científicas, incluidas la física , la química , la biología y la economía . [1] Además, algunos métodos en ecuaciones diferenciales parciales numéricas convierten la ecuación diferencial parcial en una ecuación diferencial ordinaria, que luego debe resolverse.
Una ecuación diferencial de primer orden es un problema de valor inicial (PVI) de la forma, [2]
( 1 ) |
donde es una función y la condición inicial es un vector dado. De primer orden significa que solo aparece la primera derivada de y en la ecuación y no hay derivadas superiores.
Sin perder la generalidad de los sistemas de orden superior, nos limitamos a las ecuaciones diferenciales de primer orden , porque una EDO de orden superior se puede convertir en un sistema más grande de ecuaciones de primer orden introduciendo variables adicionales. Por ejemplo, la ecuación de segundo orden y ′′ = − y se puede reescribir como dos ecuaciones de primer orden: y ′ = z y z ′ = − y .
En esta sección, describimos métodos numéricos para problemas de valores en la frontera y remarcamos que los problemas de valores en la frontera (BVP) requieren un conjunto diferente de herramientas. En un BVP, se definen valores o componentes de la solución y en más de un punto. Debido a esto, se deben utilizar diferentes métodos para resolver BVP. Por ejemplo, el método de disparo (y sus variantes) o métodos globales como diferencias finitas , [3] métodos de Galerkin , [4] o métodos de colocación son apropiados para esa clase de problemas.
El teorema de Picard-Lindelöf establece que existe una solución única, siempre que f sea Lipschitz-continua .
Los métodos numéricos para resolver problemas de primer orden a menudo se dividen en dos grandes categorías: [5] métodos lineales de múltiples pasos o métodos de Runge-Kutta . Se puede realizar una división adicional dividiendo los métodos en aquellos que son explícitos y aquellos que son implícitos. Por ejemplo, los métodos lineales de múltiples pasos implícitos incluyen los métodos de Adams-Moulton y los métodos de diferenciación hacia atrás (BDF), mientras que los métodos Runge-Kutta implícitos [6] incluyen el Runge-Kutta diagonalmente implícito (DIRK), [7] [8] el Runge-Kutta diagonalmente implícito simple (SDIRK), [9] y los métodos numéricos de Gauss-Radau [10] (basado en la cuadratura gaussiana [11] ). Los ejemplos explícitos de la familia lineal de múltiples pasos incluyen los métodos de Adams-Bashforth y cualquier método Runge-Kutta con una tabla de Butcher diagonal inferior es explícito . Una regla general general dicta que las ecuaciones diferenciales rígidas requieren el uso de esquemas implícitos, mientras que los problemas no rígidos pueden resolverse de manera más eficiente con esquemas explícitos.
Los llamados métodos lineales generales (GLM) son una generalización de las dos grandes clases de métodos anteriores. [12]
Desde cualquier punto de una curva, puedes encontrar una aproximación a un punto cercano en la curva moviéndose una distancia corta a lo largo de una línea tangente a la curva.
Comenzando con la ecuación diferencial ( 1 ), reemplazamos la derivada y ′ por la aproximación de diferencias finitas
( 2 ) |
que al reorganizarlo da como resultado la siguiente fórmula
y usando ( 1 ) se obtiene:
( 3 ) |
Esta fórmula se suele aplicar de la siguiente manera. Elegimos un tamaño de paso h y construimos la secuencia que denotamos por una estimación numérica de la solución exacta . Motivados por ( 3 ), calculamos estas estimaciones mediante el siguiente esquema recursivo
( 4 ) |
Se trata del método de Euler (o método de Euler directo , en contraposición al método de Euler inverso , que se describirá más adelante). El método recibe su nombre de Leonhard Euler, quien lo describió en 1768.
El método de Euler es un ejemplo de método explícito . Esto significa que el nuevo valor y n +1 se define en términos de cosas que ya se conocen, como y n .
Si, en lugar de ( 2 ), utilizamos la aproximación
( 5 ) |
Obtenemos el método de Euler hacia atrás :
( 6 ) |
El método de Euler inverso es un método implícito , lo que significa que tenemos que resolver una ecuación para encontrar y n +1 . Para lograrlo, se suele utilizar la iteración de punto fijo o (alguna modificación de) el método de Newton-Raphson .
Resolver esta ecuación lleva más tiempo que los métodos explícitos; este costo debe tenerse en cuenta cuando se selecciona el método a utilizar. La ventaja de los métodos implícitos como ( 6 ) es que suelen ser más estables para resolver una ecuación rígida , lo que significa que se puede utilizar un tamaño de paso h mayor.
Los integradores exponenciales describen una gran clase de integradores que han experimentado un gran desarrollo recientemente. [13] Se remontan al menos a la década de 1960.
En lugar de ( 1 ), asumimos que la ecuación diferencial es cualquiera de las formas
( 7 ) |
o se ha linealizado localmente alrededor de un estado de fondo para producir un término lineal y un término no lineal .
Los integradores exponenciales se construyen multiplicando ( 7 ) por , e integrando exactamente el resultado en un intervalo de tiempo :
Esta ecuación integral es exacta, pero no define la integral.
El integrador exponencial de primer orden se puede realizar manteniendo constante durante todo el intervalo:
( 8 ) |
El método de Euler no suele ser lo suficientemente preciso. En términos más precisos, solo tiene orden uno (el concepto de orden se explica más adelante). Esto llevó a los matemáticos a buscar métodos de orden superior.
Una posibilidad es utilizar no solo el valor calculado previamente y n para determinar y n +1 , sino hacer que la solución dependa de más valores pasados. Esto produce un denominado método de múltiples pasos . Quizás el más simple sea el método de salto de rana , que es de segundo orden y (a grandes rasgos) se basa en dos valores de tiempo.
Casi todos los métodos prácticos de varios pasos caen dentro de la familia de métodos lineales de varios pasos , que tienen la forma
Otra posibilidad es utilizar más puntos en el intervalo . Esto conduce a la familia de métodos de Runge-Kutta , llamada así en honor a Carl Runge y Martin Kutta . Uno de sus métodos de cuarto orden es especialmente popular.
Una buena implementación de uno de estos métodos para resolver una EDO implica más que la fórmula de pasos de tiempo.
A menudo resulta ineficiente utilizar el mismo tamaño de paso todo el tiempo, por lo que se han desarrollado métodos de tamaño de paso variable . Por lo general, el tamaño de paso se elige de manera que el error (local) por paso esté por debajo de un cierto nivel de tolerancia. Esto significa que los métodos también deben calcular un indicador de error , una estimación del error local.
Una extensión de esta idea es elegir dinámicamente entre diferentes métodos de diferentes órdenes (esto se llama método de orden variable ). Los métodos basados en la extrapolación de Richardson , [14] como el algoritmo de Bulirsch–Stoer , [15] [16] se utilizan a menudo para construir varios métodos de diferentes órdenes.
Otras características deseables incluyen:
Muchos métodos no se incluyen en el marco que se analiza aquí. Algunas clases de métodos alternativos son:
Algunos IVP requieren una integración con una resolución temporal tan alta y/o en intervalos de tiempo tan largos que los métodos clásicos de pasos de tiempo seriales se vuelven computacionalmente inviables para ejecutarse en tiempo real (por ejemplo, los IVP en la predicción numérica del tiempo, el modelado de plasma y la dinámica molecular). Se han desarrollado métodos paralelos en el tiempo (PinT) en respuesta a estos problemas con el fin de reducir los tiempos de ejecución de la simulación mediante el uso de computación paralela .
Los primeros métodos PinT (los primeros propuestos en la década de 1960) [20] fueron inicialmente pasados por alto por los investigadores debido al hecho de que las arquitecturas de computación paralela que requerían aún no estaban ampliamente disponibles. Con más potencia de computación disponible, el interés se renovó a principios de la década de 2000 con el desarrollo de Parareal , un algoritmo PinT flexible y fácil de usar que es adecuado para resolver una amplia variedad de problemas de rendimiento intrínseco. La llegada de la computación a exaescala ha significado que los algoritmos PinT están atrayendo cada vez más la atención de la investigación y se están desarrollando de tal manera que puedan aprovechar las supercomputadoras más poderosas del mundo . Los métodos más populares a partir de 2023 incluyen Parareal, PFASST, ParaDiag y MGRIT. [21]
El análisis numérico no es sólo el diseño de métodos numéricos, sino también su análisis. Tres conceptos centrales en este análisis son:
Se dice que un método numérico es convergente si la solución numérica se aproxima a la solución exacta a medida que el tamaño del paso h tiende a 0. Más precisamente, requerimos que para cada EDO (1) con una función de Lipschitz f y cada t * > 0,
Todos los métodos mencionados anteriormente son convergentes.
Supongamos que el método numérico es
El error local (de truncamiento) del método es el error cometido en un paso del método. Es decir, es la diferencia entre el resultado que arroja el método, suponiendo que no se cometió ningún error en los pasos anteriores, y la solución exacta:
Se dice que el método es consistente si
El método tiene orden si
Por lo tanto, un método es consistente si tiene un orden mayor que 0. El método de Euler (hacia adelante) (4) y el método de Euler hacia atrás (6) presentados anteriormente tienen ambos orden 1, por lo que son consistentes. La mayoría de los métodos que se utilizan en la práctica alcanzan un orden superior. La consistencia es una condición necesaria para la convergencia [ cita requerida ] , pero no suficiente; para que un método sea convergente, debe ser consistente y estable a cero.
Un concepto relacionado es el error global (de truncamiento) , el error que se produce en todos los pasos necesarios para alcanzar un tiempo fijo . Explícitamente, el error global en el tiempo es donde . El error global de un método de un paso de orden n es ; en particular, un método de este tipo es convergente. Esta afirmación no es necesariamente cierta para los métodos de varios pasos.
En el caso de algunas ecuaciones diferenciales, la aplicación de métodos estándar (como el método de Euler, los métodos explícitos de Runge-Kutta o los métodos de múltiples pasos (por ejemplo, los métodos de Adams-Bashforth)) muestra inestabilidad en las soluciones, aunque otros métodos pueden producir soluciones estables. Este "comportamiento difícil" en la ecuación (que puede no ser necesariamente complejo en sí mismo) se describe como rigidez y, a menudo, es causado por la presencia de diferentes escalas de tiempo en el problema subyacente. [23] Por ejemplo, una colisión en un sistema mecánico como en un oscilador de impacto ocurre típicamente en una escala de tiempo mucho menor que el tiempo para el movimiento de los objetos; esta discrepancia produce "giros muy bruscos" en las curvas de los parámetros de estado.
Los problemas de rigidez son omnipresentes en la cinética química , la teoría de control , la mecánica de sólidos , la previsión meteorológica , la biología , la física del plasma y la electrónica . Una forma de superar la rigidez es ampliar la noción de ecuación diferencial a la de inclusión diferencial , que permite y modela la no suavidad. [24] [25]
A continuación se muestra una cronología de algunos desarrollos importantes en este campo. [26] [27]
Los problemas de valores en la frontera (BVP) se resuelven generalmente numéricamente resolviendo un problema matricial aproximadamente equivalente obtenido discretizando el BVP original. [28] El método más comúnmente utilizado para resolver numéricamente los BVP en una dimensión se denomina método de diferencias finitas . [3] Este método aprovecha las combinaciones lineales de valores puntuales para construir coeficientes de diferencias finitas que describen derivadas de la función. Por ejemplo, la aproximación de diferencia central de segundo orden a la primera derivada viene dada por:
y la diferencia central de segundo orden para la segunda derivada viene dada por:
En ambas fórmulas, es la distancia entre los valores x vecinos en el dominio discretizado. Luego se construye un sistema lineal que luego se puede resolver mediante métodos matriciales estándar . Por ejemplo, supongamos que la ecuación a resolver es:
El siguiente paso sería discretizar el problema y utilizar aproximaciones derivadas lineales como
y resolver el sistema de ecuaciones lineales resultante. Esto daría lugar a ecuaciones como:
A primera vista, este sistema de ecuaciones parece tener dificultades asociadas con el hecho de que la ecuación no involucra términos que no se multipliquen por variables, pero de hecho esto es falso. En i = 1 y n − 1 hay un término que involucra los valores de contorno y y, dado que estos dos valores son conocidos, uno puede simplemente sustituirlos en esta ecuación y, como resultado, tener un sistema no homogéneo de ecuaciones lineales que tiene soluciones no triviales.