El modelo del movimiento parabólico de caída libre es uno de los primeros modelos físicos que se empezaron a estudiar con la aparición del calculo diferencial e integral.
Movimiento Parabólico de Caída Libre
$${\large \begin{equation} \frac{d^2 r}{dt^2} = -g\hat{j} \end{equation} }$$
Componente Horizontal y Vertical del MPCL
$${\large \begin{align*} \frac{dx}{dt} &= v_{x} \hspace{1.2cm} & \hspace{1.2cm} \frac{dy}{dt} &= v_{y} \\ \\ \frac{dv_{x}}{dt} &= 0 \hspace{1.2cm} & \hspace{1.2cm} \frac{dv_{y}}{dt} &= -g \end{align*} }$$
Donde g representa a la aceleración de la gravedad
Las soluciones de las ecuaciones diferenciales del movimiento parabólico tanto en el eje X como en el eje Y son las siguientes:
$$ {\large \begin{align*} x(t) &= v_{x}t \\ y(t) &= v_{y}t - \frac{gt^2}{2} \end{align*}}$$
Donde ${\large v_{x}}$ es la componente horizontal de la velocidad y ${\large v_{y}}$ es la componente vertical de la velocidad
Movimiento Parabólico con velocidad ${\large v = 200 \hspace{0.1cm} m/s}$ y ángulo ${\large \theta = 45^{\circ}}$ |
Antes de crear el código fuente es necesario que se importan algunas librerías correspondientes para compilar este código.
import numpy as np
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
from celluloid import Camera
from IPython.display import HTML
Ahora iniciaremos el código respectivamente
Código Fuente del Movimiento Parabólico de Caída Libre
def mpcl(v,b):
""" v = velocidad de lanzamiento
b = es el angulo de elevacion"""
tv = (v/4.9)*np.sin(b)
t = np.linspace(0, tv, 500)
x = v*np.cos(b)*t
y = v*np.sin(b)*t - (4.9)*(t**2)
T = t
fig=plt.figure(figsize=(14,8))
camera = Camera(fig)
ax1=fig.add_subplot(2,2,(1,2))
ax2=fig.add_subplot(2,2,3)
ax3=fig.add_subplot(2,2,4)
plt.suptitle("Movimiento Parábolico v = {} $m/s$, $\theta = $ {}$^\circ$".format(v,(180/np.pi)*b), fontsize=20)
ax1.set_title("Trayectoria de la Particula", fontsize=20)
ax1.set_xlabel("X", size=15)
ax1.set_ylabel("Y", rotation=0, size=15)
ax2.set_title("Movimiento en el eje X", fontsize=20)
ax2.set_xlabel("Tiempo", size=15)
ax2.set_ylabel("X", rotation=0, size=15)
ax3.set_title("Movimiento en el eje Y", fontsize=20)
ax3.set_xlabel("Tiempo", size=15)
ax3.set_ylabel("Y", rotation=0, size=15)
plt.tight_layout()
for i in range(500):
t_i = t[0:i]
x_i = v*np.cos(b)*t_i
y_i = v*np.sin(b)*t_i - (4.9)*(t_i**2)
head = i - 1
ax1.plot(x_i, y_i, color="k", ls="-", lw="3")
ax1.plot(x[head], y[head], color='r', marker='o', markeredgecolor='r', lw = 6, ms = 20)
ax1.text((1/19.6)*np.sin(b)*v**2, (1/39.2)*(v*np.sin(b))**2, 't = %.1f s' % t[i], fontsize=20)
ax2.plot(t_i, x_i, color="k", ls="-", lw="3")
ax2.plot(T[head], x[head], color='r', marker='o', markeredgecolor='r', lw = 6, ms = 20)
ax2.text((1.2*v/9.8)*np.sin(b), (1/29.4)*np.sin(b)*v**2, 't = %.1f s' % t[i], fontsize=20)
ax3.plot(t_i, y_i, color="k", ls="-", lw="3")
ax3.plot(T[head], y[head], color='r', marker='o', markeredgecolor='r', lw = 6, ms = 20)
ax3.text((v/9.8)*np.sin(b), (1/39.2)*(v*np.sin(b))**2, 't = %.1f s' % t[i], fontsize=20)
camera.snap()
animation = camera.animate(interval=10, blit=True)
return HTML(animation.to_html5_video())
Aplicación del código fuente
mpcl(200, np.pi/4) |
Comentarios
Publicar un comentario