Simulation of golf ball trajectories with drag and lift
A project made by
Andrea Noriega Puente
A C++ code has been developed to simulate the trajectory of a golf
ball in the XY-plane. Drag and lift forces (F_D and F_L) have been
included in the equations of motion in order to obtain more realistic
solutions. The system of four linear differential equations has
been solved with the Runge-Kutta 4 method. Finally, the
effect of including this two forces have been discussed.
Table of Contents
2. Method. The code
3. Some results
4. Discussion and Conclusions
1.1. Parabolic trajectories with drag and lift
In a basic Physics course at High School, students are taught to find the range of a parabolic
launch, assuming ideal conditions, i.e., no friction with air and no spin of the flying object.
But, when applied to real life, these approximations are no longer valid to obtain accurate
results. More parameters influence the flight of an object, as wind, resistance with air and
angular rotation, among others.
In Fig. 1, the effect of drag and spin on the trajectory can be observed. While drag only reduces
the range of the flight, the spin creates a lift force that makes the object reach a higher altitude.
Fig. 1: Different trajerctories a projectile can have for different
combinations of drag and lift.
When a sketch about the trajectory of a flying object is done (Fig. 2 left), the forces that act on the
object are, basically, the weight, the drag (due to resistance with air) and the lift (due to angular
velocity, i.e., the spin). The lift force is normal to the trajectory when the spin is perpendicular
to the trajectory (Fig. 2 right). If there is a parallel component to the trajectory (side spin), it does not
contribute to lift.
Fig. 2. Left: Parabolic trajectory of a flying object, including
velocities and accelerations vectors. Right: The angular momentum determines the lift force FL vector.
Newton's second law can be written like shown in (1), considering drag and lift forces
proportional to v:
The drag and lift coefficients are, respectively:
Where A is the cross section of the object (a golf ball in this case), ρ is the air density, and CD
and CL are the drag and lift parameters.
If drag and lift forces are now considered to be proportional to v2 , the previous expression must
be multiplied by the module of the velocity:
The equations for dv/dt have been put into the Runge-Kutta method, and numerical solutions
for velocities and position in x and y axes have been obtained. Then, taking the numerical
solutions for the position, and plotting x vs. y, a sketch of the trajectory has been obtained.
1.2. Drag and lift parameters
A relation between the parameters that appear in equation (2), and the angular velocity, ω (in
rad s-1), has been found, being:
Usually, CD does not change pretty much, and it can be considered constant, with a value of 0.45
(sphere with dimples). Anyway, the code has kept the form of CD given by (4), for a better
1.3. Runge-Kutta method
Runge-Kutta methods are a family of iterative methods, which include the Euler method, used
in temporal discretization for the approximate solutions of ordinary differential equations. The
most widely known member of the Runge-Kutta family is RK4, a fourth-order method that has
been used to solve the system of differential equations in this problem.
Each of the differential equations is an initial value problem of the
Taking a determined step of time h>0:
Where yn+1 is the approximation of y(tn+1 ), calculated by RK4 taking the previous value, yn,
plus the weighted average of four increments, k1, k2, k3, k4.
These expressions are the basis of the RK4 method that has been used to solve the systems of
differential equations shown in (1) and (3). Taking the solutions for x(t) and y(t), a plot of y vs x
has been obtained, showing the trajectory of the golf ball.
1.4. Player's swing data
Trackman is a device that allows golf players improve their game, knowing their impact and ball
flight data. It has one or two (newest models) radars that capture 27 data points about both club
and ball, and simulates the ball trajectory and to inform the player about the quality of the
impact. Some of these parameters are the clubhead speed, the ball speed, the launch angle, the
range of the ball (carry: flight distance until it touches the ground), the total distance until the
ball stops, the angular velocity of the ball, etc.
The data needed to simulate the parabolic trajectories is shown
in the following Table.
Table 1: Trackman data for different players with driver and 6-iron. Carry parameter corresponds to the
total flight distance.
2. Method. The code
The script of the code used to solve the equations of motion and to plot the numerical solutions
can be got here:
When the code is run, the machine asks you for some player data: ball speed in miles per hour,
launch angle in degrees and the angular speed (spin rate) in rpm. With this data, the program
calculates the drag and lift parameters depending on the spin rate converted to rad s -1 , and uses
Runge Kutta 4 to solve the equations of motion using the value of the initial ball speed.
- Considering parameters proportional to velocity squared:
- Considering parameters linearly proportional to velocity:
3. Some results
3.1 Considering CD and CL linearly proportional to velocity
Fig. 3: Golf ball trajectories for 4 different players obtained with
3.2 Considering CD and CL linearly proportional to velocity
Fig. 4: Golf ball trajectories for 4 different players obtained with
4. Discussion and conclusions
When the code was being run for the first times, constant values for drag and lift parameters
divided by the mass where considered, as Erlichson (1983) did. But then, the idea of these parameters varying
with the angular speed of the ball was more obvious, seeing that each player gives a different
spin rate to the ball depending on the club and the attack angle.
A comparison between the assumptions made for the drag and lift forces is shown:
Introducing drag and lift forces into the equations of motion gives a better approximation and
more realistic shapes of the ball trajectories. But even introducing these two new forces is still
not good enough to get a very reliable simulation. Some other parameter must be considered,
as a wind force or a side spin component. It is well-known that when a right-handed player hits
a ball with draw effect (side spin to the left) the ball goes a bit further than when the ball does
not have this effect.
- Considering CD and CL linearly prop to v: better approximation to the real range of the
- Considering CD and CL prop to v squared: bad approximation to real distance, but good
shape of trajectory.
Thus, the possibility that some of the players that have taken part in this experiment give the
ball this kind of effect must be also considered.
Another source of discrepancy could be the ball used. The material (form and depth of the
dimples, or the rubber used to make the interior and cover layers of the ball) could also affect
the flight of the ball.
In conclusion, a code has been developed in C++ language, using root, to simulate the flight of a
golf ball in the XY plane. A more realistic approximation is obtained introducing two new terms
into Newton's second law: drag and lift force. The code includes the Runge-Kutta (RK4) routine
to solve numerically the system of differential equations. The solutions calculated for the
position have been taken to plot y vs. x, and thus the trajectory followed by the golf ball has
Two different behaviours of drag and lift forces have been considered, and the different
trajectories obtained have been compared. When these two forces are assumed to be linearly
proportional to velocity, the range of the ball is more accurate; but when they are supposed to
be proportional to the square of velocity, the trajectory has a more realistic shape, but the range
is not even close to the real one.
For further work I would suggest improving a little bit the code:
- Look for better expressions for C D and C L , due to the important influence of projectile’s
speed, spin rate and surface characteristics.
- Introduce a wind force term, and maybe a side spin parameter, which also should be
considered to get a more accurate result for the range. Introducing just drag and lift
parameters is still a too ideal approximation.
- Improve the numerical results for the quadratic dependence of drag and lift parameters
with the velocity.
- Join both codes that are provided, asking the user which approximation they want to
use (linear or quadratic).
- Create a database of golf players, including the parameters for each club. When the
program is run, ask the user to write the name of the player and the club. The programwould search in the database for the data of the player and club and simulate the
trajectory automatically. No needs for the user to now the ball data previously.
ROBINSON, Garry; ROBINSON, Ian. The motion of an arbitrarily rotating spherical projectile
and its application to ball games. Physica Scripta, 2013, vol. 88, no 1, p. 018101.
ERLICHSON, Herman. Maximum projectile range with drag and lift, with particular application
to golf. American Journal of Physics, 1983, vol. 51, no 4, p. 357-362.
GOFF, John Eric. A review of recent research into aerodynamics of sport projectiles. Sports
engineering, 2013, vol. 16, no 3, p. 137-154.
PGA. What is TrackMan and how does it work? (https://www.pga.com/golf-
TRACKMAN. Tour Stats. (https://blog.trackmangolf.com/category/tour-stats/)
SILVERMAN, Mark P., 2014, On target: uncertainties of projectile flight. In: A Certain
Uncertainty: Nature's Random Ways. Cambridge: Cambridge University Press. p. 390-456.
I want to thank Ladislav and Boris for all the support and help they
gave me all along this project, asnd for their patience explaining
me the concepts and steps to make this project possible.