Método de Euler: Solución Numérica de Ecuaciones Diferenciales

6/12

Lectura

Los modelos cuya solución está basada en un algoritmo numérico los denominamos modelos numéricos. El algoritmo numérico más sencillo que existe es el método de Euler el cual discutiremos a continuación.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Muy buen aporte respecto a los métodos numéricos, sería excelente ampliar o crear un curso de análisis numérico y optimización, para la ruta de data science. Pues tienen grandes aplicaciones y al parecer solo los que somos matemáticos estamos al tanto del tema

Por si no queda claro como llegamos a la formula.

import numpy as np 
import matplotlib.pyplot as plt 

def exact_sol(ts): return np.exp(ts)

def num_sol(ts, dt, tf=10, y0=1):
    ys = [y0]
    ts = [0]
    num_steps = int(tf/dt)
    for _ in range(num_steps):
        ts.append(ts[-1]+dt)
        ys.append((1+dt)*ys[-1])
    return ts, ys


 
if __name__=='__main__':

    ys = [1] # creamos un areglo inicial de valores en y
    ts = [0] # creamos un areglo inicial de valores en t
    dt = 0.01

    num_steps = 1000
    for i in range(num_steps):
        ts.append(ts[-1]+dt) # calculamos el proximo t y lo agregamos al arreglo
        ys.append((1+dt)*ys[-1]) # calculamos el proximo y y lo agregamos al arreglo

    #print (ts)
    #print(ys)

   
    plt.figure(figsize=(15,8))
    plt.plot(ts,ys)
    plt.xticks(fontsize=20)
    plt.yticks(fontsize=20)
    plt.show()

    plt.figure(figsize=(12,6))
    for dt in [0.1, 0.05, 0.01]:
        ts, ys = num_sol(ts, dt)
        plt.plot(ts, ys, '--', label='dt = {}'.format(dt))
    
    plt.plot(ts,exact_sol(ts), label='exact')
    plt.xticks(fontsize=20)
    plt.yticks(fontsize=20)
    plt.legend(fontsize=20)
    plt.show()

Nunca perder de vista que al usar modelos nunméricos hay que tener siempre en cuenta el error que se va a generar por usarlos. Este va a ser menor mientras más nos acercamos a lo infinitesimal, pero ello requiere que usemos más capacidad de cómputo. Lo ideal será encontrar un equilibrio entre cantidad de error y recursos a usar, esto dependerá del tipo de problema a resolver.

Genial!