100% encontró este documento útil (2 votos)
291 vistas2 páginas

Python Euler

El documento describe la implementación del método de Euler en Python para resolver una ecuación diferencial ordinaria (EDO) donde la función es y'(t) = e^-t con la condición inicial y(0) = -1. El método de Euler aproxima la solución de la EDO dividiendo el intervalo en pasos h y calculando iterativamente la aproximación en cada paso usando la pendiente de la tangente. El código implementa este método numéricamente y grafica la solución aproximada frente a la solución exacta.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (2 votos)
291 vistas2 páginas

Python Euler

El documento describe la implementación del método de Euler en Python para resolver una ecuación diferencial ordinaria (EDO) donde la función es y'(t) = e^-t con la condición inicial y(0) = -1. El método de Euler aproxima la solución de la EDO dividiendo el intervalo en pasos h y calculando iterativamente la aproximación en cada paso usando la pendiente de la tangente. El código implementa este método numéricamente y grafica la solución aproximada frente a la solución exacta.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 2

Proyecto 9 (Implementaciones en Python: Método de Euler).

Considere-
mos un problema de valor inicial
(
y ′ (t) = f (t, y)
(13.4)
y(t0 ) = y0

Implemente el método de Euler en Python para determinar la solución numérica


de la siguiente EDO: y ′ (t) = e−t , con y(0) = −1

Solución. El método de Euler busca aproximar la solución del problema 13.4.


Para eso, consideremos una partición por n sub-intervalos para [t0 , t∗ ], no es
difícil ver que si consideramos la pendiente de la recta tangente a la curva solución
y(t) en el punto tn entonces

yn+1

yn
y(t)

tn tn+1

Figure 13.2: Esquema de Euler

De la figura 13.2, la pendiente es dada por

y(tn+1 ) − y(tn )
y ′ (tn ) =
tn+1 − tn

Así, haciendo h = tn+1 −tn (tamaño de paso), sustituyendo y ′ (tn ) por f (tn , y(tn )),
y denotando yn = y(tn ) obtenemos la fórmula de Euler

yn+1 = yn + hf (xn , yn )

Una posible implementación en Python para f (t, y) = e−t , con t0 = 0, y(0) =


−1
1 # Implementacion del Metodo de Euler

UNAJMA 53
2 import numpy as np
3 import matplotlib.pyplot as plt
4
5 plt.style.use(’seaborn-poster’)
6 %matplotlib inline
7
8 # Define parameters
9 # EDO
10 f = lambda t, s: np.exp(-t)
11 # tamanho de paso
12 h = 0.08
13 t = np.arange(0, 1 + h, h)
14 s0 = -1
15
16 # Metodo de Euler implicito
17 s = np.zeros(len(t))
18 s[0] = s0
19
20 for i in range(0, len(t) - 1):
21 s[i + 1] = s[i] + h*f(t[i], s[i])
22 #print ( ’sol = ’ ,s ) #imprimer las aproximaciones
23
24 plt.figure(figsize = (12, 8))
25 plt.plot(t, s, ’bo--’, label=’Approximate’)
26 plt.plot(t, -np.exp(-t), ’g’, label=’Exacta’)
27 plt.title(’Solucion exacta y aproximada\
28 para una EDO simple’)
29 plt.xlabel(’t’)
30 plt.ylabel(’f(t)’)
31 plt.grid()
32 plt.legend(loc=’lower right’)
33 plt.show()
Listing 13.1: Método de Euler

Figure 13.3

UNAJMA 54

También podría gustarte