Método de Euler

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 8 de enero de 2022; las comprobaciones requieren 7 ediciones .

El método de Euler  es el método numérico más simple para resolver sistemas de ecuaciones diferenciales ordinarias . Descrito por primera vez por Leonhard Euler en 1768 en su obra "Integral Calculus" [1] . El método de Euler es un método de precisión de primer orden explícito de un solo paso. Se basa en la aproximación de una curva integral por una función lineal por tramos, la llamada línea quebrada de Euler.

Descripción del método

Sea dado el problema de Cauchy para la ecuación de primer orden:

donde la función está definida en algún dominio . La solución se busca en el semiintervalo . En este intervalo, introducimos nodos: La solución aproximada en los nodos , que denotamos por , está determinada por la fórmula:

Estas fórmulas pueden generalizarse directamente al caso de sistemas de ecuaciones diferenciales ordinarias.

Estimación del error del método en el paso y en general

El error de paso o error local es la diferencia entre la solución numérica después de un paso de cálculo y la solución exacta en el punto . La solución numérica viene dada por la fórmula

La solución exacta se puede expandir en una serie de Taylor :

Obtenemos el error local restando la primera de la segunda igualdad:

Esto es cierto si tiene una segunda derivada continua [2] . Otra condición suficiente para la validez de esta estimación, de la que se sigue la anterior y que suele ser fácilmente comprobable, es la diferenciabilidad continua respecto de ambos argumentos [3] .

El error en general, error global o acumulado es el error en el último punto de un segmento final arbitrario de la integración de la ecuación. Para calcular la solución en este punto se requieren pasos, donde es la longitud del segmento. Por lo tanto, el error global del método .

Por lo tanto, el método de Euler es un método de primer orden: tiene un error en un paso y un error en general [3] .

Importancia del método de Euler

El método de Euler fue históricamente el primer método para la solución numérica del problema de Cauchy. O. Cauchy utilizó este método para demostrar la existencia de una solución al problema de Cauchy. Debido a la baja precisión y la inestabilidad computacional, el método de Euler rara vez se usa para encontrar soluciones prácticas al problema de Cauchy. Sin embargo, debido a su simplicidad, el método de Euler encuentra su aplicación en estudios teóricos de ecuaciones diferenciales, problemas de cálculo de variaciones y una serie de otros problemas matemáticos.

Modificaciones y generalizaciones

Método de Euler modificado con recálculo

Es posible aumentar la precisión y estabilidad del cálculo de la solución utilizando el método de Euler explícito de la siguiente forma.

Pronóstico:

.

Corrección:

.

Para mejorar la precisión, la iteración correctiva se puede repetir sustituyendo .

El método de Euler modificado con recálculo tiene el segundo orden de precisión, sin embargo, para su implementación, es necesario calcular al menos dos veces . El método de Euler con recálculo es una variación de los métodos de Runge-Kutta (predictor-corrector).

Método de dos pasos de Adams-Bashforth

Otra forma de aumentar la precisión del método es utilizar no uno, sino varios valores de función previamente calculados:

Este es un método lineal de varios pasos .

Implementaciones en lenguajes de programación

La implementación de C para .

#incluir <stdio.h> función doble ( doble x , doble y ) { devuelve 6 * x * x + 5 * x * y ; // función de primera derivada } int principal ( int argc , char ** argv ) { int i , n ; doble x , y , h ; h = 0,01 ; // paso n = 10 ; // número de iteraciones x = 1 ; // x0 y = 1 ; // y0 para ( yo = 0 ; yo < norte ; yo ++ ) { y += h * función ( x , y ); // calculo yi x += h ; } devuelve SALIR_ÉXITO ; }

Implementación en Python 3.7 :

# n - número de iteraciones, h - paso, (x, y) - punto de partida def Euler ( n = 10 , h = 0.01 , x = 1 , y = 1 ): for i in range ( n ): y += h * función ( x , y ) x += h devuelve x , y # solución función def ( x , y ): devuelve 6 * x ** 2 + 5 * x * y # función de primera derivada imprimir ( Euler ())

Implementación en lenguaje Lua :

n , h , x , y = 10 , 0.01 , 1 , 1 -- número de iteraciones, paso, coordenadas del punto inicial función f ( x , y ) return 6 * x ^ 2 + 5 * x * y end -- primera derivada función para i = 1 , n do x , y = x + h , y + h * f ( x , y ) end print ( 'x: ' .. x .. ' y: ' .. y )

Véase también

Notas

  1. Euler L. Integral Calculus, volumen 1, sección 2, cap. 7.
  2. Atkinson, Kendall A. (1989), Introducción al análisis numérico (2.ª ed.), Nueva York: John Wiley & Sons , p. 342, ISBN 978-0-471-50023-0 
  3. 1 2 Diccionario enciclopédico matemático . - M. : "Búhos. enciclopedia” , 1988.- S.  641 .

Literatura

  • Euler L. Cálculo integral. Tomo 1. - M.: GITTL. 1956. [1]
  • Babenko K. I. Fundamentos del análisis numérico. — M.: Nauka. 1986.