Saltar al contenido principal
LibreTexts Español

10.2: Método Euler hacia delante

  • Page ID
    125111
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    El método Forward Euler es el método conceptualmente más simple para resolver el problema del valor inicial. Por simplicidad, discretiquemos el tiempo, con espaciamientos iguales:

    \[t_0, t_1, t_2, \dots \;\; \mathrm{where}\;\; h \equiv t_{n+1} - t_n.\]

    Denotemos\(\vec{y}_n \equiv \vec{y}(t_n)\). El Método Adelante Euler consiste en la aproximación

    \[\vec{y}_{n+1} = \vec{y}_n + h \vec{F}(\vec{y}_n, t_n).\]

    A partir del estado inicial\(\vec{y}_{0}\) y el tiempo inicial\(t_{0}\), aplicamos esta fórmula repetidamente para calcular\(\vec{y}_1, \vec{y}_2,\) y así sucesivamente. El Método Forward Euler se llama método explícito, porque\(n\), en cada paso, toda la información que necesitas para calcular el estado en el siguiente paso de tiempo\(\vec{y}_{n+1}\),, ya se conoce explícitamente, es decir, solo necesitas enchufar\(\vec{y}_n\) y\(t_{n}\) en el lado derecho del fórmula anterior.

    La fórmula del Método Adelante Euler se desprende de la definición habitual de la derivada, y se vuelve exactamente correcta como\(h \rightarrow 0\). Podemos deducir el error numérico, que se llama error de truncamiento local en este contexto, por Taylor expandiendo el lado izquierdo alrededor de\(t = t_n\):

    \[\vec{y}_{n+1} = \vec{y}_n + h \left.\frac{d\vec{y}}{dt}\right|_{t_n} + \frac{h^2}{2}\, \left.\frac{d^2\vec{y}}{dt^2}\right|_{t_n} + \cdots\]

    Los dos primeros términos son precisamente iguales al lado derecho de la fórmula del Método Adelante Euler. El error de truncamiento local es la magnitud de los términos restantes, y por lo tanto se escala como\(O(h^{2})\).

    10.2.1 Inestabilidad

    Para el Método Adelante Euler, el error de truncamiento local conduce a un problema profundo conocido como inestabilidad. Debido a que el método implica aplicar repetidamente una fórmula con un error de truncamiento local en cada paso, es posible que los errores en pasos sucesivos se acumulen progresivamente, hasta que la solución misma explote. Para ver esto, considere la ecuación diferencial

    \[\frac{dy}{dt} = - \kappa y.\]

    Dado un estado inicial en el\(y_{0}\) momento\(t_{0}=0\), la solución es\(y(t) = y_0 \, e^{-\kappa t}\). Porque\(\kappa >0\), esto decae exponencialmente a cero con el aumento del tiempo. Sin embargo, considere las soluciones producidas por el Método Forward Euler:

    \[\begin{align}y_1 &= y_0 + h \cdot (-\kappa y_0) = (1-h\kappa)\, y_0 \\y_2 &= y_1 + h \cdot (-\kappa y_1) = (1-h\kappa)^2 \, y_0\\\vdots\; &= \;\;\;\vdots\\y_n &= (1-h\kappa)^n\, y_0.\end{align}\]

    clipboard_ea181e7e4426c763d1d13558b20813cdb.png
    Figura\(\PageIndex{1}\): La solución exacta (azul) y la solución Forward Euler (verde) para\(dy/dt = -\kappa y(t)\)\(y(0)=1\), para\(\kappa =1\), y\(h=2.1\). La solución numérica es inestable; explota en grandes momentos, a pesar de que la solución exacta está decayendo a cero.

    Si\(h > 2/\kappa\), entonces\(1-h\kappa < -1\), y como resultado\(y_n \rightarrow \pm\infty\) como\(n\rightarrow \infty\). A pesar de que la solución real decae exponencialmente a cero, la solución numérica explota, como se muestra en la Fig. \(\PageIndex{1}\). En términos generales, el error de truncamiento local hace que la solución numérica “sobrepase” la solución verdadera; si el tamaño del paso es demasiado grande, la magnitud del sobreimpulso sigue creciendo con cada paso, desestabilizando la solución numérica.

    La estabilidad es un problema fundamental para la integración de las ODE. Las ecuaciones que tienden a desestabilizar los solucionadores numéricos de ODE son aquellas que contienen constantes de resorte que son “grandes” en comparación con el paso de tiempo; tales ecuaciones se denominan ecuaciones rígidas. Al principio, podrías pensar que no es gran cosa: solo haz que el tamaño del paso sea\(h\) lo suficientemente pequeño, y se puede evitar la explosión. El problema es que a menudo no está claro qué tan pequeño es lo suficientemente pequeño, particularmente para las ODE complicadas (por ejemplo, no lineales), donde\(F(\vec{y},t)\) es algo así como una “caja negra”. A diferencia del ejemplo simple anterior, normalmente no tenemos la respuesta exacta con la que comparar, por lo que puede ser difícil saber si la solución numérica explota porque así es como se comporta la verdadera solución, o porque el método numérico es inestable.


    This page titled 10.2: Método Euler hacia delante is shared under a CC BY-SA 4.0 license and was authored, remixed, and/or curated by Y. D. Chong via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.