7.3: Método de Euler
- Page ID
- 120221
\( \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}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)- ¿Cuál es el método de Euler y cómo podemos utilizarlo para aproximar la solución a un problema de valor inicial?
- ¿Qué tan preciso es el método de Euler?
En la Sección 7.2, vimos cómo se puede usar un campo de pendiente para esbozar soluciones a una ecuación diferencial. En particular, el campo de pendiente es una gráfica de una gran colección de líneas tangentes a un gran número de soluciones de la ecuación diferencial, y esbozamos una única solución simplemente siguiendo estas líneas tangentes. Pensando un poco más, podemos usar esta misma idea para aproximar numéricamente las soluciones de una ecuación diferencial.
Considerar el problema de valor inicial
\[ \frac{dy}{dt} = \frac12 (y + 1), \ y(0) = 0\text{.} \nonumber \]
a. use la ecuación diferencial para encontrar la pendiente de la línea tangente a la solución\(y(t)\) en\(t=0\text{.}\) Luego use el valor inicial dado para encontrar la ecuación de la línea tangente en\(t=0\text{.}\)
b. Esbozar la línea tangente en los ejes proporcionados en la Figura 7.3.1 en el intervalo\(0\leq t\leq 2\) y utilícela para aproximar\(y(2)\text{,}\) el valor de la solución en\(t=2\text{.}\)
c. Suponiendo que su aproximación para\(y(2)\) es el valor real de\(y(2)\text{,}\) usar la ecuación diferencial para encontrar la pendiente de la línea tangente a\(y(t)\) en\(t=2\text{.}\) Entonces, escriba la ecuación de la línea tangente en\(t=2\text{.}\)
d. Agregue un boceto de esta línea tangente en el intervalo\(2\leq t\leq 4\) a su trazado Figura 7.3.1; use esta nueva línea tangente para aproximar\(y(4)\text{,}\) el valor de la solución en\(t=4\text{.}\)
e. Repita el mismo paso para encontrar una aproximación para\(y(6)\text{.}\)
7.3.1 Método de Euler
Vista previa Actividad 7.3.1 demuestra un algoritmo conocido como Método 1 de Euler, que genera una aproximación numérica a la solución de un problema de valor inicial. En este algoritmo, aproximaremos la solución tomando pasos horizontales de un tamaño fijo que denotamos por\(\Delta t\text{.}\)
Antes de explicar el algoritmo en detalle, recordemos cómo calculamos la pendiente de una línea: la pendiente es la relación entre el cambio vertical y el cambio horizontal, como se muestra en la Figura 7.3.2.
Es decir,\(m = \frac{\Delta y}{\Delta t}\text{.}\) Resolviendo para\(\Delta y\text{,}\) vemos que el cambio vertical es producto de la pendiente y el cambio horizontal, o
Ahora, supongamos que nos gustaría resolver el problema de valor inicial
Existe un algoritmo mediante el cual podemos encontrar una fórmula algebraica para la solución a este problema de valor inicial, y podemos comprobar que esta solución es\(y(t) = t -1 + 2e^{-t}\text{.}\) Pero en cambio estamos interesados en generar una solución aproximada creando una secuencia de puntos\((t_i, y_i)\text{,}\) donde\(y_i\approx y(t_i)\text{.}\) Para esto primero ejemplo, elegimos\(\Delta t = 0.2\text{.}\)
Ya que sabemos que\(y(0) = 1\text{,}\) vamos a tomar el punto inicial para ser\((t_0,y_0) = (0,1)\) y movernos horizontalmente por\(\Delta t = 0.2\) al punto\((t_1,y_1)\text{.}\) Así,\(t_1=t_0+\Delta t = 0.2\text{.}\) Ahora, la ecuación diferencial nos dice que la pendiente de la línea tangente en este punto es
así que para movernos a lo largo de la línea tangente dando un paso horizontal de tamaño también\(\Delta t=0.2\text{,}\) debemos movernos verticalmente por
Entonces tenemos la aproximación\(y(0.2) \approx y_1= y_0 + \Delta y = 1 - 0.2 = 0.8\text{.}\) En este punto, hemos ejecutado un paso del método de Euler, como se ve gráficamente en la Figura 7.3.3.
Ahora repetimos este proceso: en\((t_1,y_1) = (0.2,0.8)\text{,}\) la ecuación diferencial nos dice que la pendiente es
Si avanzamos horizontalmente por\(\Delta t\) a\(t_2=t_1+\Delta = 0.4\text{,}\) debemos movernos verticalmente por
En consecuencia llegamos a\(y_2=y_1+\Delta y = 0.8-0.12 = 0.68\text{,}\) lo que da\(y(0.2)\approx 0.68\text{.}\) Ahora hemos completado el segundo paso del método de Euler, como se muestra en la Figura 7.3.4.
Si continuamos de esta manera, podremos generar los puntos que\((t_i, y_i)\) se muestran en la Figura 7.3.5. Debido a que podemos encontrar una fórmula para la solución real\(y(t)\) a esta ecuación diferencial, podemos graficarla\(y(t)\) y compararla con los puntos generados por el método de Euler, como se muestra en la Figura 7.3.6.
Debido a que necesitamos generar una gran cantidad de puntos\((t_i,y_i)\text{,}\) es conveniente organizar la implementación del método de Euler en una tabla como se muestra. Comenzamos con los datos iniciales dados.
\(t_i\) | \(y_i\) | \(dy/dt\) | \(\Delta y\) |
\(0.0000\) | \(1.0000\) |
A partir de aquí, calculamos la pendiente de la línea tangente\(m=dy/dt\) usando la fórmula para\(dy/dt\) a partir de la ecuación diferencial, y luego encontramos\(\Delta y\text{,}\) el cambio en el\(y\text{,}\) uso de la regla\(\Delta y = m\Delta t\text{.}\)
\(t_i\) | \(y_i\) | \(dy/dt\) | \(\Delta y\) |
\(0.0000\) | \(1.0000\) | \(-1.0000\) | \(-0.2000\) |
A continuación, aumentamos\(t_i\) por\(\Delta t\) y\(y_i\) por\(\Delta y\) para obtener
\(t_i\) | \(y_i\) | \(dy/dt\) | \(\Delta y\) |
\(0.0000\) | \(1.0000\) | \(-1.0000\) | \(-0.2000\) |
\(0.2000\) | \(0.8000\) |
Continuamos el proceso por cuantos pasos decidamos, generando eventualmente una tabla como la Tabla 7.3.7.
\(t_i\) | \(y_i\) | \(dy/dt\) | \(\Delta y\) |
\(0.0000\) | \(1.0000\) | \(-1.0000\) | \(-0.2000\) |
\(0.2000\) | \(0.8000\) | \(-0.6000\) | \(-0.1200\) |
\(0.4000\) | \(0.6800\) | \(-0.2800\) | \(-0.0560\) |
\(0.6000\) | \(0.6240\) | \(-0.0240\) | \(-0.0048\) |
\(0.8000\) | \(0.6192\) | \(0.1808\) | \(0.0362\) |
\(1.0000\) | \(0.6554\) | \(0.3446\) | \(0.0689\) |
\(1.2000\) | \(0.7243\) | \(0.4757\) | \(0.0951\) |
Considerar el problema de valor inicial
- Utilice el método de Euler con\(\Delta t = 0.2\) para aproximar la solución en\(t_i = 0.2, 0.4, 0.6, 0.8\text{,}\) y\(1.0\text{.}\) Registrar su trabajo en la siguiente tabla, y bosquejar los puntos\((t_i, y_i)\) en los ejes provistos.
Cuadro 7.3.8. Tabla para registrar resultados del método de Euler. \(t_i\) \(y_i\) \(dy/dt\) \(\Delta y\) \(0.0000\) \(0.0000\) \(0.2000\) \(0.4000\) \(0.6000\) \(0.8000\) \(1.0000\) - Encuentra la solución exacta al problema del valor inicial original y usa esta función para encontrar el error en tu aproximación en cada uno de los puntos\(t_i\text{.}\)
- Explicar por qué el valor\(y_5\) generado por el método de Euler para este problema de valor inicial produce el mismo valor que una suma de Riemann izquierda para la integral definida\(\int_0^1 (2t-1)~dt\text{.}\)
- ¿En qué diferirían tus cálculos si el valor inicial fuera\(y(0) = 1\text{?}\) ¿Qué significa esto sobre diferentes soluciones a esta ecuación diferencial?
Considerar la ecuación diferencial\(\frac{dy}{dt} = 6y-y^2\text{.}\)
- Esbozar el campo de pendiente para esta ecuación diferencial en los ejes proporcionados en la Figura 7.3.10.
- Identificar cualquier solución de equilibrio y determinar si son estables o inestables.
- Cuál es el comportamiento a largo plazo de la solución que satisface el valor inicial\(y(0) = 1\text{?}\)
- Usando el valor inicial\(y(0) = 1\text{,}\) utilice el método de Euler con\(\Delta t = 0.2\) para aproximar la solución en\(t_i = 0.2, 0.4, 0.6, 0.8\text{,}\) y\(1.0\text{.}\) Registrar sus resultados en la Tabla 7.3.11 y esbozar los puntos correspondientes\((t_i, y_i)\) en los ejes proporcionados en la Figura 7.3.12. Obsérvese la diferente escala horizontal en los ejes en la Figura 7.3.12 en comparación con la Figura 7.3.10.
Cuadro 7.3.11. Tabla para registrar resultados del método de Euler con\(\Delta t = 0.2\text{.}\) \(t_i\) \(y_i\) \(dy/dt\) \(\Delta y\) \(0.0\) \(1.0000\) \(0.2\) \(0.4\) \(0.6\) \(0.8\) \(1.0\) - Qué sucede si aplicamos el método de Euler para aproximar la solución con\(y(0) = 6\text{?}\)
7.3.2 El error en el método de Euler
Dado que estamos aproximando las soluciones a un problema de valor inicial usando líneas tangentes, debemos esperar que el error en la aproximación sea menor cuando el tamaño del paso sea menor. Considerar el problema de valor inicial
cuya solución podemos encontrar fácilmente.
La pregunta que plantea este problema de valor inicial es “qué función sabemos que es la misma que su propia derivada y tiene valor 1 cuando\(t=0\text{?}\)” No es difícil ver que la solución es Ahora\(y(t) = e^t\text{.}\) aplicamos el método de Euler para aproximarse\(y(1) = e\) usando varios valores de\(\Delta t\text{.}\) Estos las aproximaciones serán denotadas por\(E_{\Delta t}\text{,}\) y las usaremos para ver qué tan preciso es el Método de Euler.
Para comenzar, aplicamos el método de Euler con un tamaño de paso de\(\Delta t = 0.2\text{.}\) En ese caso, encontramos que\(y(1) \approx E_{0.2} = 2.4883\text{.}\) El error es por lo tanto
Repetidamente el halving\(\Delta t\) da los siguientes resultados, expresados tanto en forma tabular como gráfica.
\(\Delta t\) | \(E_{\Delta t}\) | Error |
\(0.200\) | \(2.4883\) | \(0.2300\) |
\(0.100\) | \(2.5937\) | \(0.1245\) |
\(0.050\) | \(2.6533\) | \(0.0650\) |
\(0.025\) | \(2.6851\) | \(0.0332\) |
Observe, tanto numérica como gráficamente, que el error se reduce aproximadamente a la mitad cuando\(\Delta t\) se reduce a la mitad. Este ejemplo ilustra el siguiente principio general.
Si se usa el método de Euler para aproximar la solución a un problema de valor inicial en un punto\(\overline{t}\text{,}\) entonces el error es proporcional a Es\(\Delta t\text{.}\) decir,
por alguna constante de proporcionalidad\(K\text{.}\)
7.3.3 Resumen
- El método de Euler es un algoritmo para aproximar la solución a un problema de valor inicial siguiendo las líneas tangentes mientras damos pasos horizontales a través del\(t\) eje.
- Si queremos aproximar\(y(\overline{t})\) para algunos fijos\(\overline{t}\) tomando pasos horizontales de tamaño\(\Delta t\text{,}\) entonces el error en nuestra aproximación es proporcional a\(\Delta t\text{.}\)