Digamos que tiro un objeto horizontalmente desde un acantilado con una altura fija y sé el tiempo que tarda en caer. Quería saber qué distancia recorre, pero tiene una aceleración opuesta a la dirección de la velocidad inicial debido a la resistencia del aire. Por lo tanto, integré la velocidad con respecto al tiempo; en este caso, la velocidad en función del tiempo era igual a v0 - at. Bien, ¿qué es la aceleración (en este caso)? Examiné la resistencia del aire y resulta que depende del área, algún coeficiente, la densidad del aire y... la velocidad instantánea... Como estudiante de secundaria que solo ha hecho cálculos básicos, esto me confunde. ¿Tengo que aprender ecuaciones diferenciales de segundo orden antes de poder resolver esto, o me estoy perdiendo algo básico? Cualquier ayuda sería muy apreciada, y perdón por preguntar algo tan básico como esto :(.
No es una pregunta tonta, y en realidad es imposible responderla analíticamente (para el caso de arrastre cuadrático con velocidad horizontal y aceleración vertical).
Aquí hay algunas cosas básicas para ayudarlo a pensar en esto:
la ecuacion es
Si tiene un área (de frente) de , entonces cada segundo te mueves a través de una columna de aire de volumen dónde es la velocidad. La masa de esta columna es . Si mueves todo ese aire a la velocidad de tu proyectil, adquiere un impulso de . Esto comienza a parecerse mucho a su ecuación de arrastre. Solo necesitamos el factor para dar cuenta de la forma en que el aire realmente se mueve (no es simplemente "mover toda la columna de aire a la velocidad del proyectil) y ahí está.
Para calcular la trayectoria necesitará usar integración numérica. El arrastre inicial se calcula a partir de la velocidad inicial. Esto le permite calcular la aceleración instantánea (no olvide la gravedad); deje que esta aceleración actúe por un tiempo muy corto y calcule las nuevas (componentes horizontal y vertical de) la velocidad. A partir de la velocidad calcular el desplazamiento. Repita para el siguiente paso de tiempo.
Decidí escribir un script de Python simple que demuestra el enfoque. Cuando ejecuta esto con A = 0 (efectivamente sin arrastre), puede comparar el resultado con la solución analítica; esto muestra que la integración funciona correctamente. Cuando agrega arrastre "realista", puede calcular la trayectoria para cualquier otra configuración. Como de costumbre, mi código viene sin garantía ("no necesariamente un ejemplo de buena codificación, no completamente probado, sin verificación de errores, etc..."). Disfrutar.
# example of numerical integration of projectile motion in 2D
import matplotlib.pyplot as plt
from math import sin, cos, atan2, pi, sqrt
# constants
rho = 1.22 # density of medium
g = 9.81 # acceleration of gravity
# projectile properties
A = 0.05 # cross sectional area
Cd = 0.5 # drag factor
m = 0.1 # mass
# initial velocity & angle (radians)
v = 10. # m/s
theta = pi/4
# initial position, velocity, time
x = 0.
y = 5. # height above target surface
vx = v * cos(theta)
vy = v * sin(theta)
vx_init = vx
t = 0.
# storage for the result
X = [x]
Y = [y]
# step size
dt = 0.01
def drag(v, theta):
F =0.5*rho*v*v*A*Cd
return (F*cos(theta), F*sin(theta))
while ((y>0) | (vy>0)):
# instantaneous force:
Fx, Fy = drag(v, theta)
# acceleration:
ax = -Fx/m
ay = -Fy/m - g
# position update:
x = x + vx*dt + 0.5*ax*dt*dt
y = y + vy*dt + 0.5*ay*dt*dt
# update velocity components:
vx = vx + ax*dt
vy = vy + ay*dt
# new angle and velocity:
v = sqrt(vx*vx+vy*vy)
theta = atan2(vy,vx)
# store result for plotting:
X.append(x)
Y.append(y)
t = t + dt
# adjust last point to Y=0 - we may have "overshot":
ft = Y[-2]/(Y[-2]-Y[-1]) # fractional time to last point
X[-1] = X[-2] + (X[-1]-X[-2])*ft
Y[-1] = 0.
t = t - (1-ft)*dt
print('Total flight time: %.3f sec\n'%t)
print('Total distance: %.2f m'%X[-1])
print('Initial horizontal velocity: %.2f m/s'%vx_init)
print('Final horizontal velocity: %.2f m/s'%vx)
plt.figure()
plt.plot(X,Y)
plt.title('projectile motion')
plt.xlabel('X position')
plt.ylabel('Y position')
plt.show()
Y un ejemplo de la salida de lo anterior:
Eliminé mi respuesta original como resultado de un comentario de @Floris en el sentido de que para el arrastre, que depende del cuadrado de la velocidad, los movimientos vertical y horizontal no son independientes entre sí.
De acuerdo con este artículo, las ecuaciones de movimiento que deben resolverse en este caso son:
y dónde que sólo se puede hacer numéricamente.
En presencia de arrastre, las ecuaciones de Newton incluyen un término proporcional a v. cuyas soluciones son solución general de la ecuación homogénea (con g=0) más una solución particular (obtenida yendo al tiempo infinito, cuando dv/dt= 0). Vamos a hacerlo. Solucion general a es .
Solución particular: o Ahora . Controlar: como se esperaba. ¿Cuál es la velocidad en t=0?
floris
floris