# 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)
To embed this project on your website, copy the following code and paste it into your website's HTML: