Scaling sizes of sports field

Benjamin Bratton, Princeton University, Lewis-Sigler Institute for Integrative Genomics

Author Profile


This is a MATLAB live script that guides students to learn about the kinematics of thrown balls in various sports. It helps the students learn about simple numerical methods to solve differential equations, as well as compare trajectories with and without drag. Finally, students will compare different sports based on the relative size of the field to the furthest distance a single touch/throw/hit/smash can send the projectile in the sport. This is based primarily data from BD Texier et al. "On the size of sports fields."

Learning Goals

Learning goals: mechanics

By the end of this lesson you will be able to (1) estimate the maximum displacement of the projectile, (2) use the characteristic lengthscale and timescale for the sport to determine if it is likely dominated by precision and reflexes or dominated by the use of strategy to hit a target.

Learning goals: computational tasks

Be the end of this lesson the student will be able to (1) plot the trajectory of a 1D dynamical system, (2) use forward Euler integration to propagate a dynamical system, (3) use MATLAB anonymous functions to evaluate simple one-liners.

Learning goals: engaging with primary literature

Interacting with data from a peer reviewed publication will also help students engage with primary literature. As a topic, most students have experienced interacting with the projectiles of at least one of these sports.

Context for Use

This activity is designed to take approximately one hour to complete and is targeted at first year undergraduate physics students. It could be used alongside a lecture of air resistance or as an enrichment activity in interacting with data in MATLAB.

As an introductory MATLAB exercise, the students would need to be given a little bit of domain specific knowledge about Newton's laws of motion and the differential equations governing objects falling in the presence of drag (quadratic in the velocity of the object).

Before starting this exercise, the students should know how to generally interact with MATLAB and be able to load data, have a notion of flow control and how to generate plots. The guided activity could be made more difficult by removing more of the already completed code, depending on the context and desired learning objectives. For example, the guided activity utilizes anonymous functions and forward Euler integration, but could easily be expanded to use a few different MATLAB tools or computational strategies.

Description and Teaching Materials

There are three files associated with this activity.

(1-2) The instructor and student .mlx files are live scripts which integrate together the teaching content for the activity as well as example code. The instructor file is fully functional and can have additional parts stripped out to make a course specific student version. In the provided student version, the computational pieces are still included, what the student is left to do is to run the code, adjust a few parameters to interact with it, and then answer the included questions.

(3) The datafile that the students load is a .mat file. This could easily be replaced by having the students manually enter data into MATLAB as it is a table with 13 rows and 12 numbers, or something like that.

The original data and a more in-depth discussion of phenomenon can be found via the open access article "On the size of sports fields" at

scalingOfSports_instructor.mlx (MATLAB Live Script 62kB Oct13 20)

scalingofsports_student.mlx (MATLAB Live Script 62kB Oct13 20)

windtunneldata.mat (Matlab .MAT File 2kB Oct12 20)

Teaching Notes and Tips

Modifications for different usage styles:

A supplemental/enrichment activity, this could be given to the students as is for them to work through independently and should take 15-30 minutes to complete.

As a homework assignment, the student document could have some of the computational aspects 'broken' so that the students have more to fix.


Many students struggle with the use of anonymous functions and understanding at what point in execution the parameters of the function are set.


Following completion of this exercise, the students can submit their functional version of the MATLAB live script. Contained within will be answers to questions as well as figures. Depending on whether this exercise is used more to assess physics understanding or computational understanding, different sections of the MATLAB code should be removed from the student version to make bare bones code that the students will need to complete.

There are two free response questions that the students should answer as they interact with the data and reflect on their understanding of the activity.

  1. Try a variety of sports and comment on how 'good' the low drag approximation is.
  2. What does it mean for a sport to fall on the Lfield = xmax line? What about if it is above? Below?

Additionally, there are three plots that the students are asked to make.

  1. Make a plot showing the trajectory of a maximally thrown ball for a sport of your choice with and without the contribution of drag.
  2. Make a plot showing the size of sports field compared to the maximal distance that ball can be thrown.
  3. Make a plot showing the reduced reaction time (ratio of how long it would take the ball to travel the entire length of the field to the typical 1 second human response time) compared to the reduced field size (how many touches would be needed to reach the entire size of the field).

In terms of grading, I would assess this out of 10 points, 2 points for each plot and 2 points for each free response question.

References and Resources

The sports equipment data and formulation of kinematics equations are taken from "On the size of sports fields" by B D Texier, et al. (2014)

A similar approach to computing trajectories of projectiles with air resistance is given at