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

1. Introduction
2. Method. The code
3. Some results
4. Discussion and Conclusions

1. Introduction

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.

parabolic forces
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 approximation.

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 form:


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.

3. Some results

3.1 Considering CD and CL linearly proportional to velocity

Andrea Koepka Rahm Thomas
Fig. 3: Golf ball trajectories for 4 different players obtained with Demo_linear.c

3.2 Considering CD and CL linearly proportional to velocity

Andrea Koepka Rahm Thomas
Fig. 4: Golf ball trajectories for 4 different players obtained with Demo_quadratic.c

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.

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 been obtained.

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:


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? ( equipment/product-spotlight/what-trackman-and-how-does-it-work)

TRACKMAN. 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.