Trayectoria del proyectil lanzado desde la superficie del planeta

Oye, Barry, ¿puedes abusar de la función "responde tu propia pregunta" de este sitio para proporcionar información sobre esta pregunta frecuente (en varias formas diferentes):

Usted lanza un proyectil hacia arriba a una velocidad v0 en un planeta esférico sin aire con un radio de r, un período de rotación de p y una aceleración superficial de g.

  1. Establezca ecuaciones diferenciales para encontrar a qué distancia del punto de lanzamiento caerá el proyectil. Puede ignorar la revolución del planeta alrededor de su primario (si lo hay) en sus cálculos.

  2. Resuelva numéricamente estas ecuaciones diferenciales en algunos casos interesantes.

Maneras de hacer este problema más difícil:

  • Permita lanzamientos direccionales, no solo lanzamientos directos. Esta es probablemente la mejora más fácil y obvia de la pregunta.

  • Permitir planetas elipsoides, donde el radio varía con la latitud, y la superficie normal (dirección "hacia arriba") no es exactamente opuesta a la atracción de la gravedad (dirección "hacia abajo")

Respuestas (1)

Sin pérdida de generalidad, podemos dibujar nuestros ejes para que la posición inicial del proyectil esté en el plano xz.

Teniendo phien cuenta la latitud del sitio de lanzamiento, la posición inicial del proyectil es:

{ r porque ( ϕ ) , 0 , r pecado ( ϕ ) }

El sitio de lanzamiento completa una rotación en el tiempo p, por lo que su posición en el tiempo t es:

{ r porque ( ϕ ) porque ( 2 π t pag ) , r porque ( ϕ ) pecado ( 2 π t pag ) , r pecado ( ϕ ) }

Derivando, tenemos la velocidad del sitio como:

{ 2 π r porque ( ϕ ) pecado ( 2 π t pag ) pag , 2 π r porque ( ϕ ) porque ( 2 π t pag ) pag , 0 }

En particular, la velocidad en el tiempo 0 es:

{ 0 , 2 π r porque ( ϕ ) pag , 0 }

Por lo tanto, la velocidad inicial del proyectil será v0más la velocidad impartida desde el sitio de lanzamiento, como se indicó anteriormente.

Excluyendo la velocidad del sitio por un momento, el lanzamiento se alejará del centro del planeta y, por lo tanto, en la dirección:

{ porque ( ϕ ) , 0 , pecado ( ϕ ) }

Dado que este es un vector unitario, la velocidad de lanzamiento (excluyendo la velocidad del sitio de lanzamiento por el momento) es:

{ v0 porque ( ϕ ) , 0 , v0 pecado ( ϕ ) }

Agregando nuevamente la velocidad inicial del sitio de lanzamiento, tenemos la velocidad inicial del proyectil como:

{ v0 porque ( ϕ ) , 2 π r porque ( ϕ ) pag , v0 pecado ( ϕ ) }

Para simplificar, escribimos ecuaciones separadas para los componentes x, y y z del proyectil. De lo anterior tenemos:

X ( 0 ) = r porque ( ϕ )

y ( 0 ) = 0

z ( 0 ) = r pecado ( ϕ )

X ( 0 ) = v0 porque ( ϕ )

y ( 0 ) = porque ( ϕ )

z ( 0 ) = v0 pecado ( ϕ )

La aceleración actúa hacia el centro del planeta, por lo que la dirección de la aceleración en el tiempo t es:

{ X ( t ) , y ( t ) , z ( t ) }

Convirtiendo esto a un vector unitario:

{ X ( t ) X ( t ) 2 + y ( t ) 2 + z ( t ) 2 , y ( t ) X ( t ) 2 + y ( t ) 2 + z ( t ) 2 , z ( t ) X ( t ) 2 + y ( t ) 2 + z ( t ) 2 }

La aceleración debida a la gravedad es g en la superficie, que está a una distancia r del centro del planeta, y por lo tanto es g*(r/d)^2 a una distancia d del planeta (siempre que d > r, que es en nuestro problema). Usando la fórmula de la distancia, la magnitud de la gravedad en el tiempo t es:

gramo r 2 X 2 + y 2 + z 2

Así, el vector de aceleración de la gravedad es:

{ gramo r 2 X ( t ) ( X ( t ) 2 + y ( t ) 2 + z ( t ) 2 ) 3 / 2 , gramo r 2 y ( t ) ( X ( t ) 2 + y ( t ) 2 + z ( t ) 2 ) 3 / 2 , gramo r 2 z ( t ) ( X ( t ) 2 + y ( t ) 2 + z ( t ) 2 ) 3 / 2 }

Dado que resolveremos estas ecuaciones numéricamente, debemos limitar los valores de t. Obviamente queremos comenzar en t=0, pero ¿dónde terminar?

En términos generales, si un objeto tiene una velocidad inicial v0 y acelera en g (en la dirección negativa), alcanzará la velocidad 0 en el tiempo v0/g y volverá a su posición inicial en el tiempo 2*v0/g. Por lo tanto, calcular hasta t=4*v0/g debería ser suficiente.

(por supuesto, todo este problema se trata de refinar el párrafo anterior "en términos generales")

Tenga en cuenta que simplemente encontrar la función aproximada para la posición del proyectil es solo el paso 1. Luego, debemos encontrar cuándo el proyectil aterriza de nuevo en el planeta: en otras palabras, cuándo su distancia desde el centro es nuevamente r.

El código de Mathematica sigue.

(* TODO: I am not returning functions properly here *)

(* 

This module returns (in this order):

s[t]: the xyz position of the projectile at time t, 0 < t < root

site[t]: the position of the launch site at time t, just as a reminder
that the planet is rotating.

root: The time at which the projectile lands

dlat: The projectile's change in latitude (radians)

dlon: The projectile's change in longitude (radians)

nsdist: north/south distance traveled by projectile

ewdist: east/west distance traveled by projectile

tdist: total distance traveled by projectile (on surface of sphere)

Some helper functions used below are found in:

https://github.com/barrycarter/bcapps/blob/master/bclib.m

*)

launch[r_, p_, g_, phi_, v0_] := launch[r,p,g,phi,v0] = Module[
 {s, site, root, dlat, dlon, garb, nsdist, ewdist, tdist, maxtime, maxheight},

s[t_] = {x[t], y[t], z[t]} /. NDSolve[{
 x[0] == r*Cos[phi], y[0] == 0, z[0] == r*Sin[phi],
 x'[0] == v0*Cos[phi], y'[0] == 2*Pi*r*Cos[phi]/p, z'[0] == v0*Sin[phi],
 x''[t] == -g*((r^2*x[t])/(x[t]^2 + y[t]^2 + z[t]^2)^(3/2)),
 y''[t] == -g*((r^2*y[t])/(x[t]^2 + y[t]^2 + z[t]^2)^(3/2)),
 z''[t] == -g*((r^2*z[t])/(x[t]^2 + y[t]^2 + z[t]^2)^(3/2))
}, {x[t],y[t],z[t]}, {t,0,4*v0/g}][[1]];

maxtime = FindMaximum[Norm[s[t]]-r,{t,v0/g}];
maxheight = maxtime[[2,1,2]];
maxtime = maxtime[[1]];

site[t_] = r*{Cos[2*Pi*t/p]*Cos[phi], Sin[2*Pi*t/p]*Cos[phi], Sin[phi]};
root = t /. FindRoot[Norm[s[t]]-Norm[s[0]], {t, 2*v0/g}];
{dlon,dlat,garb} = xyz2sph[s[root]]-xyz2sph[site[root]];
{nsdist, ewdist} = {dlat*r, Cos[phi+dlat]*dlon*r};
tdist = 2*r*ArcSin[Norm[s[root]-site[root]]/2/r];
Return[{s[t], site[t], root, dlat, dlon, nsdist, ewdist, tdist, maxtime,
 maxheight}];
];

Ahora, usemos este código para responder algunas preguntas existentes:

Para saltar durante 1 segundo, necesito una velocidad inicial de 4,9 m/s, por lo que calculamos

launch[6371000, 86400, 9.8, 0*Degree, 4.9]

El salto toma 1.003 segundos (3 milisegundos más de lo esperado) y aterrizo 116 micrómetros al oeste de mi posición original (sin cambios en mi posición norte/sur, ya que comencé en el ecuador).

Para comprobar la respuesta de @NowIGetToLearnWhatAHe: saltar 1 m en la Tierra requiere una velocidad inicial de 4,43 m/s, así que corremos

launch[6371000, 86400, 9.8, 45*Degree, 4.43]

El salto dura 0,9053 segundos y aterrizo 6,9 mm al sur y 62,5 micrómetros al oeste de donde comencé, verificando las respuestas de @NowIGetToLearnWhatAHe hasta los errores de redondeo.

Esto efectivamente también responde a https://physics.stackexchange.com/questions/80090/ si asumimos que saltar 1 m y flotar 1 segundo es lo suficientemente cercano a los casos anteriores.

Desafortunadamente, no responde https://physics.stackexchange.com/questions/89276 Aunque el techo del tren probablemente no sea más de 1 m más alto que la mano del lanzador, la velocidad de 600 mph del tren podría ser suficiente para afectar la ecuación.

Resolvamos el problema a 45 grados de latitud norte, donde el movimiento de la bala es mayor:

launch[6371000, 86400, 9.8, 45*Degree, 1200]

La bala aterrizará 249,148 segundos después, 507 m al oeste y 1260 m al sur de su posición original, alcanzando una altura máxima de 74455 m en el punto medio de su recorrido (124,574 s)

launch[3389500, 88643, 3.711, 0*Degree, v0]

con varios v0 para ver qué tan rápido se debe lanzar la moneda para no tocar la mano del lanzador (suponiendo que el radio de la mano sea de 12 cm).

En el ecuador marciano, tendrías que lanzar una moneda a 25,9 m/s para que no te toque la mano en el camino hacia abajo. Esto es equivalente a lanzar una moneda a 9,8 m/s (alrededor de 22 millas por hora) en la Tierra, así que sí, es posible que puedas lanzar una moneda lo suficientemente rápido como para que no te toque la mano en el camino hacia abajo.

A 45 grados de latitud en Marte, tenemos:

launch[3389500, 88643, 3.711, 45*Degree, v0]

y resulta que una velocidad inicial de 10 m/s (equivalente a 3,76 m/s o 8,5 mph en la Tierra) sería suficiente para que la moneda no te toque la mano.

También podemos usar este código para tener una idea de cuánto afecta la consideración de la gravedad y la rotación a la trayectoria a diferentes velocidades iniciales.

Para lo siguiente, uso:

launch[6371000, 86400, 10, 45*Degree, v0]

estimando la gravedad de la superficie de la Tierra en 10 m/s^2 por conveniencia.

  • Tiempo de aterrizaje (en segundos):

ingrese la descripción de la imagen aquí

La línea roja representa t/5, el tiempo de aterrizaje que esperaríamos si la Tierra no girara y la gravedad no disminuyera con la distancia.

La línea azul representa el tiempo de aterrizaje real.

  • Lugar de aterrizaje a qué distancia al oeste del sitio de lanzamiento (en metros):

ingrese la descripción de la imagen aquí

  • Lugar de aterrizaje a qué distancia al sur del sitio de lanzamiento (en metros):

ingrese la descripción de la imagen aquí

  • La distancia total entre el lugar de aterrizaje y el lugar de lanzamiento refleja el gráfico anterior, ya que la mayor parte del movimiento es de norte a sur.

  • La velocidad superficial aparente del proyectil: es decir, la distancia recorrida en la superficie dividida por el tiempo de aterrizaje (en metros/segundo):

ingrese la descripción de la imagen aquí

Notas:

  • Mathematica no puede resolver la ecuación diferencial cuando la velocidad inicial supera los 7000 m/s, posiblemente porque está bastante cerca de la velocidad requerida para alcanzar la órbita terrestre (aunque no lo suficiente como para escapar por completo de la atracción gravitacional de la Tierra, lo que requeriría una velocidad de 11186 m /s)

  • A más largo plazo, me gustaría calcular aproximaciones de primer orden a las cantidades anteriores.