The recent passage of a Chinese balloon at 60,000 ft (20km) altitude over US soil made headlines. One question many Americans are wondering is: would it be possible to shoot down the balloon with a rifle?
To answer this question, I made some assumptions, and then a simulation in Mathematica using available information on bullet trajectories.
For the bullet, I assumed an AR-15, a common rifle in the USA, was used with a muzzle velocity of 1000 m/s. I further assumed a 5.56 NATO round (I'm not a gun expert so I assume this fits together?) and that bullet has a mass of 4 grams, and drag coefficient of around 0.3 (see https://apps.dtic.mil/sti/pdfs/ADA530895.pdf). So then we can plug and chug:
mbullet = 4*10^-3; (* bullet mass in kg *)
dragCoefficient =0.3;
airDensity = 1.29; (* kg/m^3 *)
bulletDiameter =5.70*10^-3 ;(* diameter in meters *)
g=9.81; (* graviational acceleration in m/s *)
sumF=-g*mbullet-(1/2)*dragCoefficient*airDensity*(\[Pi]*bulletDiameter^2 / 4 )* (y'[t]*Abs[y'[t]]); (* note: need to account for the sign of the deceleration *)
eq1=Simplify[{y''[t]==sumF/mbullet}]; (* Newton's law *)
eq2= {y[0]==0};(* Initial condition, bullet fired from the ground *)
eq3 = {y'[0]==1000};(* Initial condition, bullet at 1000 m/s *)
system =Join[{eq1, eq2, eq3}];
tmax = 40;
s=NDSolve[system,y,{t,0,tmax}];
Plot[y[t]/.s,{t,0,tmax},Frame->True, FrameLabel->{"Time [s]", "Height [m]"}]
So the bullet only gets to 2km altitude, not even close to the 20km altitude of the balloon!
We can further plot the velocity of the bullet over the trajectory using:
Plot[y'[t] /. s, {t, 0, tmax}, Frame -> True,
FrameLabel -> {"Time [s]", "Velocity [m/s]"}]
This gives us:
Solving for the end of the trajectory gets us -88 m/s. Since energy scales with v^2, it has less than 1% of the initial energy. For reference, a paintball travels at approximately 90m/s. Still, you don't want to get one of those in the eye, so that's why you should not fire guns into the air to try to shoot down Chinese balloons.