Sintáxis del Código

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from rich.console import Console
from rich.table import Table


def multipasos_adams_4(f, x0, xf, y0, h):
    num_puntos = int((xf - x0) / h) + 1
    x = np.array([x0], dtype=float)
    y = np.array([y0], dtype=float)

    # Inicialización con RK4
    for _ in range(3):
        x_n, y_n = x[-1], y[-1]
        k1 = f(x_n, y_n)
        k2 = f(x_n + h/2, y_n + h/2 * k1)
        k3 = f(x_n + h/2, y_n + h/2 * k2)
        k4 = f(x_n + h, y_n + h * k3)
        y_next = y_n + h/6 * (k1 + 2*k2 + 2*k3 + k4)
        x = np.append(x, x_n + h)
        y = np.append(y, y_next)

    # Adams-Bashforth / Adams-Moulton
    for i in range(3, num_puntos - 1):
        f0, f1, f2, f3 = f(x[i-3], y[i-3]), f(x[i-2], y[i-2]), f(x[i-1], y[i-1]), f(x[i], y[i])
        xp = x[i] + h
        yp = y[i] + h/24 * (55*f3 - 59*f2 + 37*f1 - 9*f0)
        fp = f(xp, yp)
        yc = y[i] + h/720 * (251*fp + 646*f3 - 264*f2 + 106*f1 - 19*f0)
        x = np.append(x, xp)
        y = np.append(y, yc)

    return pd.DataFrame({"x": x, "y (aproximado)": y})


def f(x, y):
    return x + y - 1  


def imprimir_tabla_rich(df, titulo):
    table = Table(title=titulo)
    for col in df.columns:
        table.add_column(col, justify="center")
    for _, row in df.iterrows():
        table.add_row(f"{row['x']:.2f}", f"{row['y (aproximado)']:.6f}")
    Console().print(table)


def graficar_resultado(df):
    plt.figure(figsize=(8, 5))
    plt.plot(df["x"], df["y (aproximado)"], marker="o", color="blue", linestyle="-")
    plt.title("Solución Aproximada con Adams de 4 Pasos")
    plt.xlabel("x")
    plt.ylabel("y (aproximado)")
    plt.grid(True)
    plt.tight_layout()
    plt.show()


# Parámetros
x0 = 0
xf = 0.8
y0 = 1
h = 0.2

# Ejecutar método y mostrar resultados
resultado_4 = multipasos_adams_4(f, x0, xf, y0, h)
imprimir_tabla_rich(resultado_4, "Método Multipasos de 4 Pasos")
graficar_resultado(resultado_4)

Código Ejecutable con Jupyter Notebook y Google Colab

Codigo de Multipasos Ejecutable con Google Colab

Updated: