EDs - Método de Milne - Python - ChatGPT

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024
  • EDs - Método de Milne - Python - ChatGPT
    por: Semillero MMCC
    Historia
    Explicación
    ChatGPT
    Código en Python
    Resultados
    import numpy as np
    import matplotlib.pyplot as plt
    def milne_method(f, y0, t0, tn, h):
    """
    Método de Milne para resolver una EDO de primer orden.
    :param f: Función que define la EDO (dy/dt = f(t, y)).
    :param y0: Valor inicial de y.
    :param t0: Tiempo inicial.
    :param tn: Tiempo final.
    :param h: Tamaño del paso.
    :return: Lista de valores de y en diferentes puntos de tiempo.
    """
    N = int((tn - t0) / h)
    t = np.linspace(t0, tn, N+1)
    y = [y0]
    Calcula los primeros 4 valores usando el método de Euler
    for i in range(1, 4):
    y.append(y[i-1] + h * f(t[i-1], y[i-1]))
    Aplica el método de Milne para los valores restantes
    for i in range(3, N):
    y.append(y[i-3] + 4 * h/3 * (2 * f(t[i], y[i]) - f(t[i-1], y[i-1]) + 2 * f(t[i-2], y[i-2])))
    return y
    Definir la función f(t, y) = 0.05 * y
    def f(t, y):
    return 0.05 * y
    Parámetros del problema
    y0 = 10000 # Valor inicial de la inversión
    t0 = 0 # Tiempo inicial
    tn = 5 # Tiempo final
    h = 0.5 # Tamaño del paso
    Resolver la EDO utilizando el método de Milne
    y_values = milne_method(f, y0, t0, tn, h)
    Mostrar los valores de la inversión en diferentes puntos de tiempo
    print("Valores de la inversión:")
    for i, y in enumerate(y_values):
    t = t0 + i * h
    print(f"t = {t:.1f} años, y = {y:.2f}")
    Graficar el crecimiento de la inversión
    t_values = np.linspace(t0, tn, len(y_values))
    plt.plot(t_values, y_values)
    plt.xlabel("Tiempo (años)")
    plt.ylabel("Valor de la inversión")
    plt.title("Crecimiento de la inversión a lo largo del tiempo")
    plt.grid(True)
    plt.show()

ความคิดเห็น •