In [12]:
import numpy as np
In [13]:
import matplotlib.pyplot as plt
In [14]:
%matplotlib inline
In [15]:
from scipy import integrate
Vamos a resolver una ecuación diferencial lineal básica:
$$\dot{y}+y=0$$$$f(y)=\dot{y}=-y$$
In [16]:
def f(y,t):
return - y
In [61]:
y_0 = 1.3
t = np.linspace(0,7)
In [62]:
sol = integrate.odeint(f, y_0, t)
In [63]:
plt.plot(t, sol)
Out[63]:
Luego si el sistema es de orden dos:
$$a\ddot{y}+b\dot{y}+cy=0$$Reducimos el orden de la siguiente manera:
In [64]:
# Definimos a todos los sistemas de segundo orden
def f_vec(y, t, a, b, c):
return np.array([y[1], - (b / a) * y[1] - (c / a) * y[0]])
In [65]:
y_0_vec = np.array([1., 0.])
In [66]:
sols = integrate.odeint(f_vec, y_0_vec, t, args=(1.,0.,1.))
In [67]:
plt.plot(t, sols[:, 0], label='$y$')
plt.plot(t, sols[:, 1], '--k', label='$\dot{y}$')
plt.legend()
Out[67]:
In [68]:
y = sols[:, 0]
In [ ]: