Every round is fired with a randomly perturbed muzzle velocity and crosswind
(Gaussian noise, matching how real propellant lot variation and gusting wind
actually behave) and integrated exactly like a single-shot ballistic sim. Points
accumulate on the impact plane; the pink ellipse is the fitted probable-error
ellipse and CEP is the radius containing 50% of impacts.
v_shot = v0 · (1 + N(0, σ_mv))
wind_shot = N(0, σ_wind)
CEP ≈ 0.59 · (σ_range + σ_deflection) (Rayleigh approximation)
- Muzzle-velocity σ — round-to-round velocity variation from propellant temperature and wear; this alone dominates range dispersion.
- Crosswind σ — gust variability that spreads impacts sideways (deflection).
- Aim range — the intended target range every round is aimed at.
This is exactly why real fire-control systems report a CEP, not a single
"the round will land here" number — dispersion is inherent to the physical
process, not a flaw to be eliminated.