# Tarea #14
# Física Computacional (2:00-3:00)
# Programa elaborado por: Nalleli Iridian Avila Garcia (1941603).

import numpy as np

def sistema1(t, u):
    return np.array([-u[1] - u[0]**2, u[0]])

def sistema2(t, u):
    return np.array([-u[1] - u[0]**3, u[0]])

def runge_kutta(h, tf, sistema):
    t = 0.0
    u = np.array([0.0, 0.0])
    while t < tf:
        k1 = h * sistema(t, u)
        k2 = h * sistema(t + 0.5 * h, u + 0.5 * k1)
        k3 = h * sistema(t + 0.5 * h, u + 0.5 * k2)
        k4 = h * sistema(t + h, u + k3)
        u = u + (k1 + 2.0 * k2 + 2.0 * k3 + k4) / 6.0
        t = t + h
        print(u)

print('Considerando los sistemas de ecuaciones diferenciales: dx/dt=-y-x**2. dy/dt=x, dx/dt=-y-x**3. dy/dt=x.')
print('Utilizando el algoritmo de Runge-Kutta con diferentes condiciones iniciales, averiguamos si (0,0) es un centro o un foco para los dos sistemas dados.')

print("Sistema 1:")
runge_kutta(0.01, 10.0, sistema1)

print("Sistema 2:")
runge_kutta(0.01, 10.0, sistema2)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: