Lessons · projectile

Projectile with air resistance: when the parabola breaks

Regime 2 — calculus does what algebra cannot. The acceleration isn't constant, so the algebra formulas don't apply; calculus is the only road in, and SymPy proves the closed form solves the equation of motion.

Regime 2 · calculus does more Math machine-derived & checked by SymPy 3 modeling assumptions (author-asserted)

The same launch — v0=30v_0 = 30 m/s at θ=45°\theta = 45° — but now with quadratic air resistance F=bvvF = b\,|v|\,v. There is no closed-form trajectory: the path is solved by numerical integration. Slide the drag up from zero and watch the clean parabola (dashed) deform — the range shrinks and the descent steepens.

Range with drag
55.1 m
Range without drag v02sin2θ/gv_0^2\sin2\theta/|g|
90 m
Range lost to drag
34.9 m
Max height with drag
16.86 m
Newton's second law with quadratic drag (a vector ODE)
mv˙=mgbvv    {v˙x=bmvvxv˙y=gbmvvym\,\dot{\mathbf v} = m\mathbf g - b\,|\mathbf v|\,\mathbf v \;\Longrightarrow\; \begin{cases} \dot v_x = -\tfrac{b}{m}|\mathbf v|v_x \\ \dot v_y = g - \tfrac{b}{m}|\mathbf v|v_y \end{cases}

Drag opposes the velocity vector and grows with the square of the speed. The two components are now coupled through v=vx2+vy2|\mathbf v| = \sqrt{v_x^2+v_y^2} — they are no longer independent, and there is no elementary closed form.

integrate v˙=g(b/m)vv\dot{\mathbf v} = \mathbf g - (b/m)|\mathbf v|\mathbf v by RK4; check step-convergence; check the equation-of-motion residual; check b=0b=0 recovers the exact parabola

  • The path is RK4-converged: halving the step changes the range by less than 11 mm. [numeric]
  • The path solves mv˙=mgbvvm\,\dot{\mathbf v} = m\mathbf g - b|\mathbf v|\mathbf v (max residual 6.4e066.4e-06 m/s²). [numeric]
  • At b=0b=0 the numerical path reproduces the exact drag-free parabola (range matches v02sin2θ/gv_0^2\sin2\theta/|g|). [numeric]
  • Drag shortens the range: 55.155.1 m vs 90.090.0 m undamped, and the descent is steeper than the ascent. [numeric]

Dimensional homogeneity: checked by SymPy (holds).

Common misconception: “Air resistance just makes the projectile fall a bit short — the path is still a parabola.

With drag the path is not a parabola — it is asymmetric. The projectile loses speed to drag, so the descent is steeper and shorter than the ascent, and the peak shifts past the midpoint. Slide the drag up and watch the real path peel away from the dashed parabola; only at b=0b = 0 do they coincide.

Modeling assumptions — author-asserted, disclosed not discharged
  • Quadratic air resistance F=bvvF = b\,|v|\,v opposing the velocity vector (the author-asserted drag model).
  • g=10g = -10 m/s², up positive; point mass launched from and landing at the same height.
  • No closed form exists, so the path is solved by numerical (4th-order Runge–Kutta) integration — converged to better than 1 mm and machine-checked against the equation of motion.

The trajectory, fully annotated

A static rendering (Matplotlib) at the default launch — the path y vs x, with the apex and range marked. The interactive version with launch-angle and speed sliders is in the Graph tab above.

2026-06-26T15:38:18.780190 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/