---
title: Projectile Motion
module: Kinematics
moduleNumber: 1
lessonNumber: 3
order: 103
summary: >
  Throw an object and it seems to trace one curved path, but the motion is really two
  independent one-dimensional motions running at once: constant velocity across the
  ground and free fall in the vertical. Splitting it that way turns every projectile
  question — how long it stays up, how far it lands, how high it climbs, whether it
  clears an obstacle — into a pair of equations you already know. We derive the
  parabolic trajectory, work both the forward and the inverse problems, and show
  why the familiar $45^\circ$ range-maximizing angle holds only when launch and
  landing heights match.
topics: [Kinematics]
draft: false
sources:
  - book: Tipler & Mosca
    ref: "Ch. 3 — Motion in Two and Three Dimensions; §3-2"
---

## Projectile model and trajectories

Projectile motion treats a launched body as a particle subject only to uniform
gravity. With horizontal $x$ and upward $y$ axes,

$$
a_x=0,
\qquad a_y=-g.
$$

Launch speed $v_0$ at angle $\theta$ has initial components

$$
v_{0x}=v_0\cos\theta,
\qquad v_{0y}=v_0\sin\theta.
$$

Integrating each independent component gives

$$
x=x_0+v_0\cos\theta\,t,
$$

$$
y=y_0+v_0\sin\theta\,t-\frac12gt^2.
$$

Time is the shared parameter. Horizontal motion runs at constant velocity, vertical
motion at constant acceleration. Eliminating time between the two equations gives the
parabolic path.

The horizontal component $v_0\cos\theta$ stays fixed for the whole ideal flight; the
vertical component $v_0\sin\theta$ decreases linearly under gravity.

$$
% caption: The launch arrow is decomposed at the release point. Horizontal and
% vertical components set the initial data for independent kinematic equations;
% their vector sum is the specified launch velocity.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (5.0,0) node[right] {x};
  \draw[->, black] (0,0) -- (0,3.8) node[above] {y};
  \draw[->, acc, very thick] (0,0) -- (3.6,2.45) node[midway, above left] {$v_0$};
  \draw[->, black, thick] (0,0) -- (3.6,0) node[midway,below] {$v_x$};
  \draw[->, black, thick] (3.6,0) -- (3.6,2.45) node[midway,right] {$v_y$};
  \draw[dashed, black] (0,2.45) -- (3.6,2.45);
  \draw[acc] (0.55,0) arc (0:34.25:0.55);
  \node[acc, anchor=west] at (0.62,0.2) {angle};
\end{tikzpicture}
$$

**Inverse design for nonlevel targets.**

A forward calculation starts from launch speed and angle and returns a landing point.
Inverse design starts from a target coordinate and solves for launch conditions that
reach it. A target coordinate alone does not fix a unique trajectory: height, range,
obstacle clearance, flight time, and available speed each add a constraint.

For a fixed target $(R,H)$ and chosen launch angle $\theta$, the trajectory equation
solves for the required launch speed:

$$
v_0^2=\frac{gR^2}{2\cos^2\theta(R\tan\theta-H)}.
$$

The denominator must be positive: the initial straight-line rise $R\tan\theta$ must
exceed the target height $H$, so the launch direction points above the target before
gravity bends the path down to it. A direction pointing below the target has no real
solution in the ideal model.

> **Worked example.** A mechanical guide fixes the launch angle at $55^\circ$; the
> target sits $40\ \mathrm m$ away and $8.0\ \mathrm m$ above launch height. Find the
> speed that reaches it.
>
> The inverse-speed relation gives
> $$
> v_0^2=\frac{(9.8)(40)^2}
> {2\cos^2 55^\circ(40\tan55^\circ-8.0)},
> $$
> so $v_0=22.0\ \mathrm{m\,s^{-1}}$. The denominator is small for near-vertical or
> near-grazing geometry, so substitute the result back into the trajectory equation
> to confirm it.

**Fixed-time design.**

A specified arrival time $T$ determines the initial components directly:

$$
v_{0x}=\frac{R}{T},
\qquad
v_{0y}=\frac{H+\frac12gT^2}{T}.
$$

The required speed and angle follow from

$$
v_0=\sqrt{v_{0x}^2+v_{0y}^2},
\qquad
\theta=\atanTwo(v_{0y},v_{0x}).
$$

Each positive $T$ gives one ideal-model solution. A short delivery time needs a large
horizontal component; a long one needs a larger upward component to stay aloft.

> **Worked example.** A drone delivers a package to a point $30\ \mathrm m$ away and
> $5.0\ \mathrm m$ above launch height in exactly $2.0\ \mathrm s$. Find the launch
> velocity.
>
> The horizontal component covers the range, and the vertical component supplies both
> the rise and the gravitational drop:
> $$
> v_{0x}=\frac{30}{2.0}=15.0\ \mathrm{m\,s^{-1}},
> \qquad
> v_{0y}=\frac{5.0+\frac12(9.8)(2.0)^2}{2.0}=12.3\ \mathrm{m\,s^{-1}}.
> $$
> Combining gives $v_0=19.4\ \mathrm{m\,s^{-1}}$ at $\theta=39.4^\circ$, and the
> target is reached at $t=2.0\ \mathrm s$ by construction.

**Landing-surface constraints.**

A real landing surface is rarely an infinite plane. A platform can occupy a finite
horizontal interval, cap the impact speed, or demand a specific impact angle. Apply
these conditions after finding candidate intersections. For a platform from $x_1$ to
$x_2$, a root is admissible only when $x_1\le x(t_f)\le x_2$. An impact-speed limit
uses

$$
v_f^2=v_0^2-2g(y_f-y_0)
$$

in the ideal model. An impact-angle requirement uses

$$
\tan\phi=\frac{v_y(t_f)}{v_x(t_f)}.
$$

A geometrically reachable target can still fail: the projectile may arrive too fast,
at too shallow an angle, or outside the finite landing region.

> **Worked example.** A ball is launched at $v_0=18\ \mathrm{m\,s^{-1}}$ and
> $\theta=40^\circ$ over level ground. Find its velocity at the equal-height impact.
>
> Gravity leaves the horizontal component intact and reverses the vertical one:
> $$
> v_{x,f}=18\cos40^\circ=13.8\ \mathrm{m\,s^{-1}},
> \qquad
> v_{y,f}=-18\sin40^\circ=-11.6\ \mathrm{m\,s^{-1}}.
> $$
> The impact direction is $-40^\circ$ below horizontal, matching the launch angle by
> symmetry.

On a sloped surface, compare this velocity angle with the local surface angle, not
with horizontal alone, to get the incidence angle.

$$
% caption: The launch velocity is resolved into horizontal and vertical components.
% Gravity changes only the vertical component, so equal-time trajectory points have
% equal horizontal spacing while their vertical separation changes with time.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->] (0,0) -- (6.2,0) node[right] {x};
  \draw[->] (0,0) -- (0,3.4) node[above] {y};
  \draw[acc, very thick, domain=0:5.4, samples=120] plot (\x,{0.98*\x-0.1815*\x*\x});
  \draw[->, thick] (0,0) -- (1.25,1.02);
  \node[anchor=south east] at (1.15,1.02) {launch};
  \draw[->, thick] (0,0) -- (1.25,0) node[midway, below] {$v_x$};
  \draw[->, thick] (1.25,0) -- (1.25,1.02) node[midway, right] {$v_y$};
  \foreach \x in {0.9,1.8,2.7,3.6,4.5}
    {\draw[dotted] (\x,0) -- (\x,{0.98*\x-0.1815*\x*\x});
     \fill (\x,{0.98*\x-0.1815*\x*\x}) circle (1.6pt);}
  \draw[<->] (0.9,-0.35) -- (1.8,-0.35) node[midway, below] {equal};
  \draw[<->] (1.8,-0.35) -- (2.7,-0.35) node[midway, below] {equal};
\end{tikzpicture}
$$

**Trajectory equation.**

The horizontal equation gives $t=(x-x_0)/(v_0\cos\theta)$ when the horizontal
component is nonzero. Substitution in the vertical equation yields

$$
y-y_0=(x-x_0)\tan\theta
-\frac{g(x-x_0)^2}{2v_0^2\cos^2\theta}.
$$

The negative quadratic coefficient curves the trajectory downward. Use this form when
the question specifies a horizontal location, such as a barrier height or a target
position. It fails once drag, lift, or a large variation of gravity enters, because
the component accelerations are then no longer constant.

Equal-time samples expose the two component motions. Horizontal increments stay equal
because $a_x=0$. Vertical increments shrink on ascent, reach zero velocity (not zero
acceleration) at the top, and grow on descent.

At equal launch and landing heights, horizontal velocity is unchanged and vertical
velocity reverses sign. Thus

$$
v_{x,f}=v_0\cos\theta,
\qquad v_{y,f}=-v_0\sin\theta.
$$

Impact speed then equals launch speed in the ideal model, but the velocities differ:
horizontal components agree while vertical components point in opposite directions.
Equal speed is not equal velocity.

## Range and launch geometry

Vertical velocity is $v_y=v_0\sin\theta-gt$. The highest point has $v_y=0$,
which gives

$$
t_H=\frac{v_0\sin\theta}{g},
\qquad H-y_0=\frac{v_0^2\sin^2\theta}{2g}.
$$

At the peak, vertical velocity is zero but vertical acceleration remains $-g$.
Equal launch and landing heights give the flight time
$T=2v_0\sin\theta/g$, so the range is

$$
R=v_0\cos\theta\,T
=\frac{v_0^2\sin(2\theta)}{g}.
$$

Complementary launch angles have the same ideal range because they give the same
value of $\sin(2\theta)$. They do not have the same flight time or maximum height.

$$
% caption: The vertical-velocity line crosses zero at peak time. Equal endpoint
% heights produce equal positive and negative velocity magnitudes, while the fixed
% negative slope equals the constant gravitational acceleration throughout flight.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (5.7,0) node[right] {time};
  \draw[->, black] (0,-2.1) -- (0,2.7) node[above] {$v_y$};
  \draw[acc, very thick] (0.4,2.1) -- (5.1,-1.8);
  \draw[dashed, black] (2.75,0) -- (2.75,0.4);
  \node[anchor=north] at (2.75,-0.1) {peak time};
\end{tikzpicture}
$$

The velocity-time graph fixes the peak time but hides the spatial trade-off between
horizontal and vertical components. Complementary trajectories share a range while
differing in height and flight duration.

$$
% caption: Complementary launch angles yield the same ideal range on level ground.
% The steep trajectory has a greater height and longer flight, while the shallow
% trajectory has a larger horizontal component; their common endpoint gives equal range.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (6.1,0) node[right] {x};
  \draw[acc, thick, domain=0:4.8, samples=90] plot (\x,{1.042*\x-0.217*\x^2});
  \draw[black, thick, domain=0:4.8, samples=90] plot (\x,{1.833*\x-0.382*\x^2});
  \node[acc] at (2.65,0.55) {low angle};
  \node[black] at (1.45,2.55) {high angle};
  \draw[dashed, black] (4.8,0) -- (4.8,-0.4) node[below] {same range};
\end{tikzpicture}
$$

**Launch and landing at unequal heights.**

The equal-height range relation does not apply when the landing surface lies above
or below the launch point. The vertical equation remains a quadratic in time,

$$
\frac12gt^2-v_0\sin\theta\,t+(y_f-y_0)=0.
$$

Its roots are

$$
t=\frac{v_0\sin\theta\pm\sqrt{v_0^2\sin^2\theta-2g(y_f-y_0)}}{g}.
$$

The stated landing event selects the physical root. A target above launch height is
crossed twice, ascending and descending. A lower target usually has one positive
future root and one belonging to the trajectory extrapolated before launch. Only after
choosing the time does horizontal displacement follow:
$x_f-x_0=v_0\cos\theta\,t_f$.

$$
% caption: A launch from an elevated platform reaches a lower landing surface at
% the positive root of the vertical quadratic. The dashed level marks release
% height; the vertical drop increases flight time and range relative to level ground.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (6.1,0) node[right] {x};
  \draw[->, black] (0,0) -- (0,4.0) node[above] {y};
  \draw[acc, thick, domain=0.5:5.15, samples=90]
    plot (\x,{2.2+1.55*(\x-0.5)-0.435*(\x-0.5)^2});
  \draw[dashed, black] (0,2.2) -- (2.0,2.2) node[right] {launch level};
  \draw[fill=acc!12, draw=acc, thick] (0.5,2.2) circle (1.8pt);
  \draw[fill=acc!12, draw=acc, thick] (5.15,0) circle (1.8pt);
\end{tikzpicture}
$$

> **Worked example.** A ball leaves a $15\ \mathrm m$ platform horizontally at
> $10\ \mathrm{m\,s^{-1}}$. Find the flight time, range, and impact velocity.
>
> With $v_{0y}=0$, the vertical equation gives the fall time,
> $$
> -15=-\tfrac12 g t^2,
> \qquad t=\sqrt{\frac{30}{9.8}}=1.75\ \mathrm s,
> $$
> so the range is $v_{0x}t=17.5\ \mathrm m$ and the impact velocity is
> $\vec v_f=(10,-17.2)\ \mathrm{m\,s^{-1}}$. Its magnitude exceeds launch speed
> because the ball descends through a height difference.

## Design constraints and launch platforms

On level ground with fixed launch speed and no drag,

$$
R(\theta)=\frac{v_0^2}{g}\sin(2\theta).
$$

Differentiation gives

$$
\frac{\d R}{\d\theta}=\frac{2v_0^2}{g}\cos(2\theta)=0,
$$

so $\theta=45^\circ$ maximizes range in the physical interval.[^tipler32] This holds
only for equal launch and landing heights; a target, barrier, time, or peak-height
constraint shifts the optimum. Complementary angles give equal range on level ground
but differ in flight time and peak height.

[^tipler32]: Tipler and Mosca, _Physics for Scientists and Engineers_, 6th ed., §3-2.

**Launch from an elevated platform.**

A launch point above the landing plane changes the flight-time equation. With
horizontal distance $x$ and vertical coordinate measured from the landing plane,

$$
x=v_0\cos\theta\,t,
\qquad
0=h+v_0\sin\theta\,t-\frac12gt^2.
$$

The physically relevant root is

$$
t_f=\frac{v_0\sin\theta+
\sqrt{v_0^2\sin^2\theta+2gh}}{g}.
$$

The negative root places the projectile at the landing height before launch and
does not represent the forward flight. The range is

$$
R(\theta)=\frac{v_0\cos\theta}{g}
\left(v_0\sin\theta+
\sqrt{v_0^2\sin^2\theta+2gh}\right).
$$

The expression reduces to the level-ground formula when $h=0$. For $h>0$, the
range-maximizing angle is less than $45^\circ$: the added fall time allows a
larger horizontal launch component.

A $20.0\ \mathrm m$ platform and $v_0=12.0\ \mathrm{m\,s^{-1}}$ horizontal
launch give

$$
t_f=\sqrt{\frac{2h}{g}}=2.02\ \mathrm s,
\qquad
R=v_0t_f=24.2\ \mathrm m.
$$

The impact velocity components are $v_x=12.0\ \mathrm{m\,s^{-1}}$ and
$v_y=-gt_f=-19.8\ \mathrm{m\,s^{-1}}$. Thus

$$
v_f=\sqrt{v_x^2+v_y^2}=23.2\ \mathrm{m\,s^{-1}},
\qquad
\theta_f=\atanTwo\left(|v_y|,v_x\right)=58.8^\circ.
$$

The impact angle is steeper than the launch angle because gravity has changed
only the vertical component.

**Range optimization as a constrained calculation.**

For equal launch and landing heights, differentiating

$$
R(\theta)=\frac{v_0^2}{g}\sin(2\theta)
$$

gives

$$
\frac{\d R}{\d\theta}=
\frac{2v_0^2}{g}\cos(2\theta).
$$

The stationary condition $\cos(2\theta)=0$ gives $\theta=45^\circ$ in the
interval from $0$ to $90^\circ$. The second derivative is negative there:

$$
\frac{\d^2R}{\d\theta^2}=
-\frac{4v_0^2}{g}\sin(2\theta)<0,
$$

so the stationary point is a maximum. This result holds only while launch speed
is fixed and both heights match. A target at a specified horizontal range has
two possible launch angles when the range is less than the maximum. The
lower-angle trajectory has shorter flight time and a smaller peak; the
higher-angle trajectory has larger vertical speed and may clear an obstacle.

A minimum-speed problem reverses the constraint. For a target at $(R,H)$, set the
trajectory equation equal to $H$ and solve for $u=\tan\theta$:

$$
\frac{gR^2}{2v_0^2}u^2-Ru+
\left(H+\frac{gR^2}{2v_0^2}\right)=0.
$$

The discriminant determines whether a launch angle exists. Its zero value marks
the smallest speed that reaches the target. This quadratic structure is more
reliable than memorizing a nominal $45^\circ$ rule.

**Air resistance as a model change.**

Drag breaks the constant-horizontal-velocity equation. A common high-speed
approximation is

$$
\vec F_D=-\tfrac12 C_D\rho A v\,\vec v.
$$

Acceleration now depends on both speed and direction. The path stops being a
parabola, complementary angles lose their equal ranges, and equal-height launch and
impact speeds differ. Numerical integration replaces the closed-form equations, with
the no-drag solution as a baseline for sizing the drag effect.

**Launches from moving platforms.**

The initial ground-frame velocity is a Galilean vector sum. A platform with velocity
$\vec V_{P/G}$ and launch velocity $\vec v_{B/P}$ measured on the platform gives

$$
\vec v_{B/G}(0)=\vec v_{B/P}+\vec V_{P/G}.
$$

After release, gravity acts exactly as for a stationary launcher. The platform
velocity shifts the initial ground-frame components, not the acceleration. For a
platform moving horizontally at $V$ and a forward launch of speed $u$ at angle
$\alpha$ relative to the platform,

$$
v_{0x}=V+u\cos\alpha,
\qquad v_{0y}=u\sin\alpha.
$$

The ground-frame trajectory is therefore

$$
y-y_0=\frac{u\sin\alpha}{V+u\cos\alpha}(x-x_0)
-\frac{g(x-x_0)^2}{2(V+u\cos\alpha)^2}.
$$

The platform frame assigns different initial components to the same motion. A frame
change is consistent only when target coordinates and velocities transform together
with the projectile velocity.

Interception equates the projectile and target positions. A target with constant
ground velocity $\vec v_T$ satisfies

$$
\vec r_B(0)+\vec v_{B/G}(0)t
-\frac12gt^2\hat\jmath
=\vec r_T(0)+\vec v_Tt.
$$

Both components must hold at one positive time. A fixed launch speed then admits zero,
one, or two launch directions, depending on target position and motion.

> **Worked example.** A platform moves east at $8.0\ \mathrm{m\,s^{-1}}$ and releases a ball forward at
> $6.0\ \mathrm{m\,s^{-1}}$ from height $20\ \mathrm m$. The initial ground-frame
> horizontal velocity is
>
> $$
> v_{0x}=8.0+6.0=14.0\ \mathrm{m\,s^{-1}}.
> $$
>
> The flight time is $t=\sqrt{40/9.8}=2.02\ \mathrm s$, so a stationary ground target
> must lie $(14.0)(2.02)=28.3\ \mathrm m$ east of release. Treating the platform-frame
> launch speed as a ground-frame speed predicts $12.1\ \mathrm m$ and misses; the error
> is entirely the omitted frame transformation.

## Target geometry, feasibility, and checks

With horizontal displacement $R$ and height $H$ relative to launch, the target
equation can be written in terms of $u=\tan\theta$:

$$
H=Ru-\frac{gR^2}{2v_0^2}(1+u^2).
$$

Rearrangement gives a quadratic equation for the launch-slope variable,

$$
\frac{gR^2}{2v_0^2}u^2-Ru+
\left(H+\frac{gR^2}{2v_0^2}\right)=0.
$$

Its discriminant controls reachability:

$$
\Delta=R^2-\frac{2gR^2H}{v_0^2}-\frac{g^2R^4}{v_0^4}.
$$

If $\Delta>0$, two launch angles strike the target. If $\Delta=0$, one limiting
angle reaches it. If $\Delta<0$, the specified speed is insufficient. The two-angle
case generalizes complementary angles on level ground: one path is lower and faster,
the other higher and slower. The discriminant is the direct mathematical
reachability test.

For fixed speed, solving the target equation for $H$ as a function of $R$ identifies
every point reachable at a selected launch angle. The upper boundary of the union of
those trajectories is the range envelope. Maximizing the height at each $R$ gives

$$
H_{\rm env}=\frac{v_0^2}{2g}-\frac{gR^2}{2v_0^2}.
$$

Targets above this downward-opening parabola cannot be reached at the stated speed
in the ideal model. Targets below it have one or two possible launch angles, except
where a ground or platform constraint removes one path.

$$
% caption: The range envelope bounds all drag-free trajectories launched with one
% fixed speed from the origin. A target below the envelope admits two launch angles;
% a target on it has one limiting tangent trajectory, and a target above it is
% unreachable without increasing speed or changing the launch point.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (6.2,0) node[right] {range};
  \draw[->, black] (0,0) -- (0,4.1) node[above] {height};
  \draw[acc, very thick, domain=0.25:4.69, samples=90] plot (\x,{3.85-0.175*\x^2});
  \draw[fill=white, draw=black, thick] (2.7,1.45) circle (2pt) node[below] {two paths};
  \draw[fill=acc!12, draw=acc, thick] (3.55,1.55) circle (2pt);
  \node[acc, anchor=west] at (3.82,1.9) {tangent};
  \draw[fill=white, draw=black, thick] (2.0,3.75) circle (2pt) node[above] {unreachable};
  \draw[dashed, black] (3.55,1.55) -- (3.75,2.0);
\end{tikzpicture}
$$

> **Worked example.** A target is $30\ \mathrm m$ away and $5.0\ \mathrm m$ above the launch point.
> At a proposed speed $20\ \mathrm{m\,s^{-1}}$, the discriminant formula gives
>
> $$
> \Delta=30^2-\frac{2(9.8)(30)^2(5.0)}{20^2}
> -\frac{(9.8)^2(30)^4}{20^4}.
> $$
>
> The positive result establishes two angles; substituting the two roots for $u$ gives
> the low and high trajectories. The discriminant tests reachability before any angle
> is reported.

**Energy cross-check of speed.**

Gravity is conservative in the no-drag model. Between launch and any point of height
$y$, mechanical energy gives

$$
\frac12mv^2+mgy=\frac12mv_0^2+mgy_0.
$$

Hence

$$
v^2=v_0^2-2g(y-y_0).
$$

Use this relation to check the speed magnitude. Component equations determine the
velocity angle and horizontal location at a stated time. At equal launch and landing
heights, energy gives equal launch and impact speeds, matching the component result.
At a lower landing height, energy predicts greater impact speed; the vertical
kinematic equation determines the impact direction.

**Numerical model with drag.**

Quadratic drag changes the acceleration to

$$
\vec a=-g\hat\jmath
-\frac{C_D\rho A}{2m}v\vec v.
$$

The drag vector opposes the instantaneous velocity. Its horizontal component is
nonzero whenever the horizontal speed is nonzero, so the constant-$v_x$ equation is
lost. An Euler or midpoint update advances the state over short time steps:

$$
\vec v_{n+1}=\vec v_n+\vec a_n\Delta t,
\qquad
\vec r_{n+1}=\vec r_n+\vec v_n\Delta t.
$$

Step-size convergence provides an error estimate. Repeat the calculation with
$\Delta t$ and $\Delta t/2$; the difference in range, peak height, or intercept
time estimates the numerical sensitivity. This does not measure model error from an
unknown drag coefficient, wind variation, or spin-induced lift. Those uncertainties
must be varied separately in the input model.

## Trajectory reconstruction and data fitting

The projectile equations describe the center of mass after release. A real launcher
adds pre-release geometry (nozzle height, rail direction, platform motion, the first
unobstructed point), and a real landing surface adds its own (a plane, a finite deck,
a curved surface, a target of nonzero size). The kinematic solution is complete only
after the intersection with that geometry is tested.

A landing plane through point $(x_p,y_p)$ with slope $q$ obeys

$$
y-y_p=q(x-x_p).
$$

Substitution of the projectile trajectory gives a quadratic in $x$. Its roots are
the potential intersections of the ideal path and the plane. A physical landing
requires a future time, a point within the finite material extent of the surface,
and a velocity directed into rather than away from the contact surface. These three
tests separate mathematical curve intersections from actual collision events.

The local normal to a plane of slope $q$ is proportional to
$(-q,1)$. At an intersection, the incoming velocity component normal to the surface
is

$$
v_n=\frac{-qv_x+v_y}{\sqrt{1+q^2}}.
$$

The sign identifies whether the projectile approaches the selected surface face.
The tangential component determines sliding or impact-angle conditions in a later
contact model; it is not determined by projectile kinematics alone.

> **Worked example.** A projectile has ground-frame velocity components $v_x=12\ \mathrm{m\,s^{-1}}$
> and $v_y=-9\ \mathrm{m\,s^{-1}}$ at a candidate landing point. The deck rises at
> $q=0.50$. Its normal component is
>
> $$
> v_n=\frac{-0.50(12)+(-9)}{\sqrt{1+0.50^2}}
> =-13.4\ \mathrm{m\,s^{-1}}.
> $$
>
> With the upward-pointing normal convention, the negative result indicates approach
> from above toward the deck. If the candidate coordinate lies outside the finite
> deck interval, this valid plane intersection still does not represent a landing on
> the physical deck.

**Fitting a trajectory to data.**

Video or motion-tracking data can test the projectile model without directly
measuring launch angle. With a calibrated image plane, record pairs $(t_i,x_i,y_i)$.
The ideal model predicts

$$
x_i=x_0+v_{0x}t_i,
$$

$$
y_i=y_0+v_{0y}t_i-\frac12gt_i^2.
$$

A linear fit of $x$ against $t$ estimates $v_{0x}$. A quadratic fit of $y$ against
$t$ estimates $y_0$, $v_{0y}$, and the coefficient of $t^2$. The expected quadratic
coefficient is $-g/2$. A statistically significant deviation can indicate timing
error, camera perspective distortion, air resistance, or an incorrect spatial
calibration.

The fit residuals have diagnostic value. Random residuals of comparable size can be
consistent with measurement noise. Residuals that become increasingly negative late
in the flight indicate that the observed path falls below the ideal parabola, a
common drag signature. Residuals with a left-right trend can indicate a wind or
camera-axis error.

> **Worked example.** Suppose horizontal positions over $0.80\ \mathrm s$ increase from
> $1.20\ \mathrm m$ to $9.20\ \mathrm m$. The fitted horizontal speed is
>
> $$
> v_{0x}=\frac{9.20-1.20}{0.80}=10.0\ \mathrm{m\,s^{-1}}.
> $$
>
> At the same time, a vertical fit is
> $y=1.50+8.00t-4.90t^2$. The fitted launch height is $1.50\ \mathrm m$, vertical
> launch component is $8.00\ \mathrm{m\,s^{-1}}$, and quadratic coefficient matches
> $-g/2$ to the shown precision. The inferred launch speed is
>
> $$
> v_0=\sqrt{10.0^2+8.00^2}=12.8\ \mathrm{m\,s^{-1}}.
> $$

**Air-resistance scale analysis.**

Quadratic drag has magnitude $D=\tfrac12C_D\rho Av^2$. A dimensionless estimate
of its importance over a ballistic arc compares drag with weight,

$$
\Pi_D=\frac{C_D\rho Av_0^2}{2mg}.
$$

When $\Pi_D\ll1$, drag is initially small compared with weight, though it can still
accumulate over a long flight. When $\Pi_D$ is comparable with one, the ideal
parabolic prediction lacks quantitative reliability. Numerical integration is then
required because drag direction changes with velocity. Use the ratio to select the
model before calculation.

> **Worked example.** A ball with $C_D=0.50$, $\rho=1.2\ \mathrm{kg\,m^{-3}}$,
> $A=0.0040\ \mathrm{m^2}$, $m=0.15\ \mathrm{kg}$, and
> $v_0=25\ \mathrm{m\,s^{-1}}$ gives
>
> $$
> \Pi_D=\frac{(0.50)(1.2)(0.0040)(25)^2}
> {2(0.15)(9.8)}=0.51.
> $$
>
> Drag is already about half the weight at launch, so the ideal range should be used
> only as a qualitative reference. A numerical model with measured or estimated drag
> coefficient is required for a quantitative landing prediction.

**Interpreting fitted launch data.**

A fit constrains physical parameters only once its outputs are tied back to the
launcher. The intercepts $x_0$ and $y_0$ describe the chosen coordinate origin, not
the physical edge of the launcher. The fitted components $v_{0x}$ and $v_{0y}$
describe the center of mass at the instant after contact is lost. When the first
camera frame falls after release, extrapolate back to $t=0$: the first visible data
point is not automatically the initial condition.

Fit parameters should be reported with the measurement role that produced them. This
keeps a camera coordinate, a launch state, and a model residual from being collapsed
into one apparent trajectory result.

| Fitted or measured item | Representation | Diagnostic |
| --- | --- | --- |
| Image position | calibrated $(x_i,y_i,t_i)$ | scale, perspective, and timestamp checks |
| Horizontal motion | $x=x_0+v_{0x}t$ | residual trend versus time |
| Vertical motion | $y=y_0+v_{0y}t-\tfrac12gt^2$ in the ideal model | fitted quadratic coefficient |
| Departure from ideal flight | residual vector | drag, wind, spin, or camera-model test |

Camera-based fitting requires a spatial calibration. A known ruler, target spacing,
or calibrated reference plane converts image pixels to metres. A camera tilted
relative to the motion plane introduces perspective distortion: equal physical
horizontal distances may not occupy equal image distances. A two-dimensional fit is
therefore valid only after lens distortion and projective geometry are negligible or
corrected. High frame rate improves timing resolution, but it does not repair an
incorrect spatial calibration.

Measurement and model inference use separate stages:

1. Establish a coordinate origin and a metric scale in the motion plane.
2. Record a time for each measured center-of-mass position.
3. Fit horizontal position to a line and vertical position to a quadratic.
4. Inspect residuals before interpreting fitted launch components.
5. Compare the fitted vertical quadratic coefficient with $-g/2$.
6. State whether deviations are consistent with uncertainty, drag, wind, spin, or
   camera geometry.

Residuals should be plotted against time rather than reported only as one aggregate
error number. A constant offset can arise from an origin choice and does not by
itself invalidate the model. A curvature mismatch indicates a physical or timing
model error. A sequence of residuals that alternates sign can indicate frame-by-
frame tracking noise. The pattern matters because different errors require different
corrections.

> **Worked example.** Suppose a vertical quadratic fit has coefficient
> $c_2=-5.25\ \mathrm{m\,s^{-2}}$ rather than the ideal
> $-4.90\ \mathrm{m\,s^{-2}}$. The difference is
>
> $$
> \Delta c_2=-0.35\ \mathrm{m\,s^{-2}}.
> $$
>
> If the fit's coefficient uncertainty is $0.40\ \mathrm{m\,s^{-2}}$, the ideal
> value lies within one uncertainty interval and the discrepancy is not strong
> evidence for drag. If the uncertainty is $0.05\ \mathrm{m\,s^{-2}}$, the mismatch
> is seven times that scale and requires explanation. This comparison distinguishes
> an observed mismatch from an attribution of every nonideal coefficient to aerodynamic drag.

**Reporting a projectile result.**

A technical projectile result states the coordinate convention, launch point, initial
velocity (components or speed and angle), gravitational value, target or landing
geometry, and assumptions about air forces and frame motion. Omitting any of these
leaves the result ambiguous: a range without launch and landing heights, an angle
without its reference direction, or a speed without its reference frame.

The following compact report form contains the minimum information required for
reproduction:

$$
\vec r_0=(x_0,y_0),\qquad
\vec v_0=(v_{0x},v_{0y}),\qquad
\vec a=(0,-g),
$$

followed by the event condition, such as $y=0$, $x=R$, or intersection with a
specified surface. If uncertainty is material, report it with the corresponding
quantity and method: measurement standard deviation, calibration bound, or model
parameter range. This notation distinguishes observed inputs from derived outputs.

**Assumption hierarchy and communication limits.**

Present the ideal model as an approximation hierarchy. A report should state that
uniform gravity was used, air resistance was neglected, the launch platform was
stationary in the ground frame, the trajectory remained in a vertical plane, and the
target coordinate was measured relative to the launch point. Each condition identifies
a possible source of departure between calculation and experiment.

When results are extrapolated beyond measured data, the extrapolation should be
named. A fit over the first half of a flight does not validate the landing point if
drag grows with speed or if a crosswind changes later. A camera fit in one plane does
not establish the absence of out-of-plane motion. Good reporting separates what was
measured, what was inferred from a model, and what was predicted outside the
measurement interval.

Initial-state measurements determine the component equations; the acceleration model
determines the trajectory family; and event geometry selects a physical solution
from that family. Omitting any link can change the stated range or impact condition
without an obviously implausible curve, so projectile calculations must document
assumptions alongside numerical outputs.

A projectile report is a short chain from measurement to prediction, one model
quantity per stage:

| Stage | Mathematical object | Required check |
| --- | --- | --- |
| Launch state | $(x_0,y_0,v_{0x},v_{0y})$ | reference frame, time origin, and spatial calibration |
| Trajectory model | constant $g$ or a stated drag law | residual pattern against measured positions |
| Event condition | target point, line, or region | selected root and its physical time interval |
| Reported outcome | range, impact speed, or angle | model domain and uncertainty source |

**Reproducibility checklist.**

Before comparing two projectile calculations, align their definitions. The same
launch can be reported with horizontal range, along-slope range, map displacement,
or distance travelled; these are different quantities. The same target can be
specified by a fixed point, a moving point, a line, or a finite region. The same
velocity can be measured relative to ground, launcher, air, or water. Each choice
changes the equations used to define the event, even when the drawn trajectory
appears similar.

A reproducible solution records the event time selected from any quadratic roots,
the sign convention for vertical coordinates, and the unit system used in numerical
substitution. It also distinguishes a feasibility conclusion from a launch-angle
solution: a nonnegative discriminant establishes that a solution exists, while the
roots determine the actual candidate directions. These reporting details prevent
coordinate and reference-frame errors from being hidden by a plausible final range.

## Inclined and fixed-speed trajectories

An inclined landing surface changes the intersection condition. Place the launch
point at the origin and let the plane rise at angle $\beta$ above horizontal. Its
equation is

$$
y=x\tan\beta.
$$

The projectile trajectory for launch angle $\theta$ is

$$
y=x\tan\theta-\frac{gx^2}{2v_0^2\cos^2\theta}.
$$

Equating the two curves gives the nonzero horizontal intersection coordinate,

$$
x=\frac{2v_0^2\cos^2\theta}{g}
(\tan\theta-\tan\beta).
$$

The expression is meaningful only when the projectile initially rises above the
plane, requiring $\theta>\beta$ for an upward-sloping plane. The distance measured
along the plane is $s=x/\cos\beta$, so

$$
s=\frac{2v_0^2\cos^2\theta}{g\cos\beta}
(\tan\theta-\tan\beta).
$$

An equivalent trigonometric form is

$$
s=\frac{2v_0^2\cos\theta\sin(\theta-\beta)}{g\cos^2\beta}.
$$

Unlike the level-ground range, this result depends on the plane angle explicitly.
The landing point is lower or higher than launch according to the sign of the plane
slope, and the distance convention must be stated: horizontal range $x$ and slope
distance $s$ are different observables.

**Optimization on a slope.**

Maximizing $s$ requires differentiation of the inclined-plane expression rather
than setting $\theta=45^\circ$. The condition can be written in angle form as

$$
\frac{\d}{\d\theta}\left[\cos\theta\sin(\theta-\beta)\right]=0.
$$

Expansion or trigonometric identities yield

$$
\tan(2\theta-\beta)=\cot\beta,
$$

which gives the physical maximum

$$
\theta_{\rm max}=45^\circ+\frac{\beta}{2}.
$$

An upward-sloping plane has an optimum launch angle steeper than $45^\circ$. A
downward slope has a shallower optimum. The result concerns distance measured along
the plane and assumes fixed launch speed, no drag, and a plane passing through the
launch point.

> **Worked example.** A projectile is launched at $v_0=20\ \mathrm{m\,s^{-1}}$ up a $20^\circ$ slope.
> The angle maximizing along-slope range is
>
> $$
> \theta_{\rm max}=45^\circ+10^\circ=55^\circ.
> $$
>
> Substitution into the slope-distance expression gives
>
> $$
> s=\frac{2(20)^2\cos55^\circ\sin35^\circ}
> {(9.8)\cos^2 20^\circ}
> =30.4\ \mathrm m.
> $$
>
> The horizontal coordinate of the landing point is $s\cos20^\circ=28.6\ \mathrm m$.
> Reporting the horizontal distance as the range along the slope would confuse two
> different geometric measurements.

**Envelope of fixed-speed trajectories.**

Fix the launch point and speed $v_0$, but permit the launch angle to vary. Every
angle produces one parabola, and the family has an upper boundary called the
trajectory envelope. It identifies the highest point reachable at each horizontal
coordinate and therefore gives a direct obstacle-clearance criterion.

Start with the trajectory equation and write $u=\tan\theta$. Since
$\sec^2\theta=1+u^2$,

$$
y=xu-\frac{gx^2}{2v_0^2}(1+u^2).
$$

At fixed horizontal coordinate $x$, maximize the right side with respect to the
launch-slope variable. Differentiation gives

$$
\frac{\partial y}{\partial u}=x-\frac{gx^2}{v_0^2}u=0,
$$

so the angle of the trajectory tangent to the envelope satisfies

$$
u=\tan\theta=\frac{v_0^2}{gx}.
$$

Substitution back into the family of trajectories yields

$$
y_{\rm env}=\frac{v_0^2}{2g}-\frac{gx^2}{2v_0^2}.
$$

The envelope is itself a downward-opening parabola. Its intercept with the vertical
axis is $v_0^2/(2g)$, the maximum vertical height attainable by a straight-up
launch. Its intercept with the launch-height line occurs at $x=v_0^2/g$, which is
half the maximum level-ground range. This does not mean that the envelope is one
physical trajectory: each point on it is tangent to a different member of the
fixed-speed trajectory family.

$$
% caption: The heavy curve is the envelope of every drag-free trajectory launched
% from one point at fixed speed. A barrier below the envelope can be cleared by at
% least one angle; a barrier on it has one tangent limiting launch; a barrier above
% it cannot be reached without increasing speed or changing launch conditions.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (6.2,0) node[right] {x};
  \draw[->, black] (0,0) -- (0,4.2) node[above] {y};
  \draw[acc, very thick, domain=0.25:4.70, samples=90] plot (\x,{3.75-0.17*\x^2});
  \draw[black, thin, domain=0:4.2, samples=90] plot (\x,{2.143*\x-0.510*\x^2});
  \draw[black, thin, domain=0:4.3, samples=90] plot (\x,{1.116*\x-0.260*\x^2});
  \draw[fill=acc!12, draw=acc, thick] (3.55,1.52) circle (2pt) node[below right] {tangent target};
  \draw[fill=white, draw=black, thick] (2.0,3.75) circle (2pt) node[above] {unreachable target};
\end{tikzpicture}
$$

Clearance of an obstacle of height $H$ at horizontal location $R$ requires

$$
H\leq \frac{v_0^2}{2g}-\frac{gR^2}{2v_0^2}.
$$

The inequality is equivalent to the nonnegative-discriminant condition in the
target-angle quadratic: the obstacle must lie on or below the envelope. The equality
case is sensitive to small changes in speed, launch position, drag, and obstacle
height. Physical design therefore requires an additional safety margin.

> **Worked example.** A launcher has fixed speed $v_0=25\ \mathrm{m\,s^{-1}}$. A wall lies
> $40\ \mathrm m$ away and is $8.0\ \mathrm m$ high. The envelope height there is
>
> $$
> y_{\rm env}=\frac{25^2}{2(9.8)}
> -\frac{(9.8)(40)^2}{2(25)^2}
> =19.3\ \mathrm m.
> $$
>
> The wall lies below the envelope, so two ideal launch angles clear it. If the wall
> were $19.3\ \mathrm m$ high, one tangent launch angle would just clear it. A wall
> above that height is unreachable at the fixed speed regardless of angle. Air drag
> would lower the real envelope, so a no-drag clearance result overestimates the
> available margin.

**Solution methods and feasibility domains.**

Identify the unknown before selecting equations. Four common problem forms cover most
questions:

- **Forward trajectory:** launch conditions are known; calculate position or
  velocity at a stated time.
- **Landing event:** a surface or target defines the final position; solve the
  vertical equation for physically admissible time, then use horizontal motion.
- **Inverse design:** target coordinates and an angle, speed, or time constraint
  are known; solve for the remaining launch quantity.
- **Feasibility test:** speed and target geometry are fixed; use the discriminant or
  trajectory envelope before attempting a numerical angle.

The equations should be written in a fixed order. First establish the coordinate
origin and signs. Then resolve initial velocity. Next write one equation per
component with the same time variable. Finally apply the event condition. Eliminating
time too early often hides which root represents the intended event; retaining time
until the event is identified makes the physical branch visible.

A projectile meeting a vertical wall at $x=R$ has the single horizontal-motion time

$$
t_R=\frac{R}{v_0\cos\theta}.
$$

Substitution in vertical motion gives its wall height. For a horizontal platform at
height $H$, vertical motion gives one or two candidate times. Each time is then
tested in the horizontal interval occupied by the platform. A wall and a platform
therefore impose different mathematical constraints even when they pass through the
same point.

> **Worked example.** A ball is launched at $v_0=22\ \mathrm{m\,s^{-1}}$ and
> $40^\circ$ toward a wall $30\ \mathrm m$ away. Find the trajectory height at the
> wall.
>
> The wall fixes the horizontal coordinate, hence the single flight time
> $$
> t_R=\frac{30}{22\cos40^\circ}=1.78\ \mathrm s,
> $$
> and substituting it into the vertical equation gives
> $$
> y=(22\sin40^\circ)(1.78)-\tfrac12(9.8)(1.78)^2=9.62\ \mathrm m.
> $$
> A wall shorter than $9.62\ \mathrm m$ is cleared in the ideal model. This says
> nothing about landing range, flight time to ground, or impact angle; each needs its
> own event condition.

**Measurement and uncertainty in projectile tests.**

Experimental projectile data are sensitive to launch-angle and speed uncertainty.
For level-ground range,

$$
R=\frac{v_0^2\sin(2\theta)}{g},
$$

small independent uncertainties give the first-order estimate

$$
\frac{\delta R}{R}\approx2\frac{\delta v_0}{v_0}
+2\cot(2\theta)\,\delta\theta.
$$

Angle uncertainty is measured in radians in this differential expression. Near
$45^\circ$, $\cot(2\theta)$ approaches zero, so range is locally insensitive to
small angle errors; at shallow or steep angles, the same angular error produces a
larger fractional range change. Speed uncertainty always enters with a factor of
two because range scales with speed squared.

> **Worked example.** A launch speed is measured as $(20.0\pm0.2)\ \mathrm{m\,s^{-1}}$ at
> $35.0^\circ\pm0.5^\circ$. Converting angle uncertainty gives
> $\delta\theta=0.00873\ \mathrm{rad}$. The speed contribution is
> $2(0.2/20.0)=0.020$. The angle contribution is
>
> $$
> 2\cot70^\circ(0.00873)=0.00636.
> $$
>
> The estimated fractional range uncertainty is about $0.026$, or $2.6\%$ using a
> conservative linear sum. The calculation identifies speed measurement as the
> dominant uncertainty for this geometry. Systematic air drag, camera calibration,
> and launch-height error are separate model uncertainties and are not captured by
> this propagation formula.

**Feasibility and limiting cases.**

Limiting cases test the domain of a result. As $g$ tends to zero, the trajectory
equation approaches a straight line. As $v_0$ tends to zero,
nonzero-range targets become unreachable. At $\theta=90^\circ$, the horizontal
range equation is undefined because horizontal velocity is zero, but vertical
motion remains well defined. At $\theta=0$, the maximum-height expression gives
zero rise above launch point. These limits test the physical domain of compact
formulas and prevent division-by-zero expressions from being used as general laws.

## Assumptions and validation

Four assumptions underlie the standard equations, each removing a term from the
acceleration model:

- **Particle body:** no rotation, no spin lift, no deformation.
- **Uniform gravity:** constant magnitude and vertical direction, giving $a_y=-g$.
- **Inertial ground frame** over the flight interval.
- **No air forces:** drag and lift neglected, giving $a_x=0$.

The trajectory is a parabola only while all four hold together.

The model is often accurate for short terrestrial trajectories of compact objects
at modest speed. It becomes inaccurate when flight time is long, projectile speed
is large, altitude change is comparable with Earth radius, or aerodynamic forces
are comparable with weight. A calculation should state the model before reporting a
range or an impact speed. A numerical answer without its acceleration model is not
fully specified.

**Timing constraints and event selection.**

The vertical equation can generate more than one mathematical time. A target at a
height between launch level and peak height may be crossed on ascent and again on
descent. The physical event determines which root is used. A negative time belongs
to an extrapolated trajectory before the stated launch and must be rejected for a
forward-time prediction.

At a target $(R,H)$, horizontal motion gives $t=R/(v_0\cos\theta)$ when the
horizontal component is positive. Substitution in vertical motion produces the
target equation. This approach is preferable when target coordinates are known,
because it makes the single shared time explicit. Solving horizontal and vertical
motion with different independently chosen times describes no physical intersection.

$$
% caption: A horizontal target line below the peak intersects the same trajectory
% twice. The earlier point is an ascending crossing and the later point is a
% descending crossing; both share the same target height but have different times
% and vertical-velocity signs.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (6.0,0) node[right] {x};
  \draw[->, black] (0,0) -- (0,3.9) node[above] {y};
  \draw[acc, thick, domain=0:5, samples=90] plot (\x,{1.80*\x-0.36*\x^2});
  \draw[dashed, black] (0,1.45) -- (5.5,1.45) node[right] {target height};
  \draw[fill=acc!12, draw=acc, thick] (1.0,1.45) circle (1.8pt) node[below left] {up};
  \draw[fill=acc!12, draw=acc, thick] (4.15,1.45) circle (1.8pt) node[below right] {down};
\end{tikzpicture}
$$

**Horizontal and vertical initial conditions.**

A horizontal launch has the special condition $v_{0y}=0$. A vertical launch has the
special condition $v_{0x}=0$, for which the
horizontal coordinate is constant and the trajectory degenerates from a parabola to
a vertical line. General-angle launch contains both cases as limiting values.

$$
\theta=0\ \Longrightarrow\ v_{0y}=0,
\qquad
\theta=90^\circ\ \Longrightarrow\ v_{0x}=0.
$$

The trajectory equation divides by $\cos\theta$, so it cannot be used directly for
a purely vertical launch. The original component equations remain valid. This is a
mathematical-domain check: a compact formula can have a restricted range even when
the underlying physical model remains well defined.

**Error checks for numerical solutions.**

A solution should satisfy independent checks. Units in the trajectory equation
must reduce to length. At $t=0$, the position and velocity must reproduce their
initial values. Differentiating the position equations must recover the velocity
components, and differentiating again must give $(0,-g)$. At equal heights, the
computed speed should agree with launch speed under the no-drag model. A solution
for a higher target requires a discriminant that is nonnegative. These checks catch
sign errors before a numerical angle or range is interpreted.

In a numerical drag calculation, the ideal solution gives a limiting benchmark:
as the drag coefficient approaches zero, the numerical range and trajectory should
approach the analytic parabolic result. Halving the time step should change reported
range by less than the desired numerical tolerance. Agreement between two step sizes
does not validate the drag coefficient, wind model, or aerodynamic area; it only
tests discretization error for the selected model.

The separation between the two curves measures the effect of changing the
acceleration model. It grows during flight because drag continuously removes
horizontal and vertical speed. Range, peak height, impact speed, and flight time must
all be recomputed after drag enters; no single reduction factor adjusts them together.

**Consistency across solution forms.**

Three ideal-model calculations describe the same event through different variables:

- **Vertical kinematics:** time at a specified height.
- **Trajectory equation:** height at a specified horizontal coordinate.
- **Energy:** speed magnitude at a specified height.

Agreement among them is a strong check. Disagreement usually signals a sign-convention
mismatch, a wrong root, or a level-ground formula applied to a nonlevel event.

For example, at equal launch and landing heights, component kinematics gives
$v_{y,f}=-v_{y,0}$ and $v_{x,f}=v_{x,0}$. Squaring and adding yields
$v_f^2=v_0^2$. Mechanical energy gives the same result immediately because
$\Delta y=0$. Neither argument implies equal velocity vectors: the vertical
component reverses direction. This distinction is essential when an impact angle or
a surface-normal speed is required.

An inverse calculation can be checked in the opposite direction. After computing a
required launch speed or angle, substitute it into the forward component equations
and evaluate the specified target event. The target coordinates, time, and any
stated impact constraint must all be recovered within the precision of the input
measurements. This forward substitution is preferable to trusting an algebraic
rearrangement alone, especially near a feasibility boundary where roundoff and
parameter uncertainty can change the number of real trajectories.
