Modeling Rocket Flight Trajectory

Sani Abba
Department of Mathematical Sciences (Computer Science),Abubakar Tafawa Balewa University (Federal University of Technology), Nigeria.
Author Profile


This problem is a computational problem solving. Computational problem solving often involves applying a consistent and structured approach to solving problems. As essential as problem solving is, several approaches are combined that will lead to the final solution. However, problems must be approached methodically, applying algorithms or step by step procedure by which one arrives at a solution. In this classroom activity, the students will develop a model to determine the time of flight of rocket missile launch from the surface of the earth and distance travelled when the rocket returns to the ground. To explain the problem in a clear way, the student will write MATLAB codes to calculate the range that a rocket missile would travel when it is launched with an initial velocity of 20 m/s at an initial angle of theta. Calculate this range for all angles between 0° and 90° in steps of 1° degree. Determine the angle that will result in the maximum range of the rocket. Plot the trajectory of the rocket missile for angles between 10° and 90° in 1° increments. Plot the maximum-range trajectory in a different color and with a thicker line. <a>A</a>ssume that the atmospheric air has no effect on the trajectory of flight. Furthermore, the flight of a rocket launch can be confronted with real world situations. The Saturn V rocket used in the Apollo 11 spacecraft is employed to provide better understanding of a real-life scenario. The methodology makes use of the second order differential equation to model the Saturn V rocket launch. The rocket can be modelled using MATLAB codes including its position, time derivatives, velocity and acceleration.

[1] Luís M. B. C. Campos and Paulo J. S. Gil, On Four New Methods of Analytical Calculation of Rocket Trajectories,</a>Aerospace J. 2018, 5, 88, pp. 1-32.

[2] George Buchanan et al., The Development of Rocketry Capability in New Zealand—World Record Rocket and First of Its Kind Rocketry Course, Aerospace J.2015, 2, pp. 92-117.

[3] Hoani Bryson et al., Vertical Wind Tunnel for Prediction of Rocket Flight Dynamics, Aerospace J. 2016, 3, 10, pp. 1-27.

[4] Stamminger, A. STERN—A rocket programme for German students. In Proceedings of the 21st ESA Symposium on European Rocket and Balloon Programmes and Related Research, Thun, Switzerland, 9–13 June 2013.

[5] Rojas, J.I.; Prats, X.; Montiaur, A.; Garcia-Berro, E. Model rocket workshop: A problem-based learning experience for engineering students. Int. J. Emerg. Technol. Learn.2008, 3, 70–77.

[6] Heath, M.T.; Dick, W.A. Virtual rocketry: Rocket science meets computer science. Computat. Sci. Eng. IEEE1998, 5, 16–26.

[7] Cannon, R.L. Model rocketry as a teaching aid in science. Sch. Sci. Math2010, 74, 471–475.

[8] Jayaram, S.; Boyer, L.; George, J.; Ravindra, K.; Mitchell, K. Project-based introduction to aerospace engineering course: A model rocket. Acta Astronaut.2010, 66, 1525–1533.

[9] NASA. Rockets Educator Guide; EG-2011–11–223-KSC; NASA: Washington, DC, USA, 2011.

Available at:

[10] Box, S.; Bishop, C.M.; Hunt, H. Stochastic six-degree-of-freedom flight simulator for passively controlled high-power rockets. J. Aerosp. Eng.2011, 24, 31–45.

[11] Open source model rocket simulator. Available online:

download.html (accessed on 21 February 2015).

[12] Stephen J. Chapman, MATLAB® Programming for Engineers, Fourth Edition, Thomson Learning, Thomson Corporation, Canada, 2008, pp. 206-216.

[13] Stormy Attaway, MATLAB®: A practical Introduction to Programming and Problem Solving, College of Engineering, Boston University, MA, Butterworth-Heinemann, Elsevier Inc., Third Edition, 2013, pp. 14-70.

[14] Eric Peasley, 3 DBT Part A: Simulating a Rocket Launch, pp. 37-48, available:

[15] Eric Peasley, Introduction to the P5 Computing Laboratory, Department of Engineering Science, Oxford University, Britain, pp. 1-67, available at:

[16] Eric Peasley et al. P5 Computing Laboratory and DBT 5 Sessions in Michaelmas, Hilary, and Trinity, 2018-2019, pp. 107-127, available at:

Used this activity? Share your experiences and modifications

Learning Goals

The main goal of this classroom activity is to provide students with hands-on experience on MATLAB programming and application skills covered in the classroom. The activity will expose the students with a real-life demonstration of rocket missile trajectory and time of flight to arrive at the target destination. The students will learn the following:

1. Create a mathematical model of the stated classroom activity as defined in the summary section. These include: determine the fundamental principles of the projectile motion. Draw sketches or block diagrams to represent the vertical and horizontal velocity components of the rocket missile. Define the variables / parameters and assign symbols to represent them. Identify and justify the assumptions and constraints inherent in this model.

2. Create computational model. A computational method for solving the problem needs to be developed based on the mathematical model mentioned above. Derive a set of equations that allow the calculation of the desired parameters and variables. Develop an algorithm, or step-by-step method of evaluating the equations involved in the solution. Describe the algorithm in mathematical terms and then implement using MATLAB.

3. Implementing the computational method. The mathematical algorithm developed in step 2 must be translated into a computational algorithm and then implemented using MATLAB.

4. Test and assess the solution. The assessment is the most flexible and difficult in solving computational problems. In order to ascertain the accuracy of the results, the plotted graphs and numerical data obtained, must be checked carefully.

The prerequisite MATLAB skills needed for this classroom activity are as follows:

1. Constant / variables / expressions

2. Built-in functions

3. MATLAB plotting, coloring and visualization

4. Arrays and vector indexing

5. Loops / iterations (for loop)

Context for Use

I used this problem as a classroom activity in a 400-level undergraduate engineering students' course titled, "EA413 computer programming for engineers (MATLAB programming)". The students have covered the basics of engineering problem solving techniques, vector analysis, projectile motion, computational models as applied in mathematics, basic introduction to MATLAB features and built-in functions as the prerequisite to this classroom activity. However, the class size is too large, about two hundred and fifty (250) students are taking the course. Students from the following engineering discipline are taking the course, these are: electrical / electronics, mechanical / production, automobile, civil, mechatronics, agric, petroleum, chemical and physics engineering. The classroom activity includes a practical demonstration using MATLAB codes and a real-life application of the problem. The duration of this class activity, including the practical demonstration is two hours (2 Hours). This makes the teaching and learning easier for the students and develop interest in MATLAB computational skills.

Description and Teaching Materials

The main emphasis of this classroom activity is to provide students with hands-on experience on MATLAB programming and problem-solving skills. The activity will expose the students with a real-life demonstration of rocket missile trajectory and time of flight to arrive at the target destination. This classroom activity solves a computational problem using MATLAB. The activity is to be conducted as in-class activity. The activity takes about two (2) hours. As mentioned earlier in the summary section, the number of students taking the course is large. Therefore, the first one hour will be devoted to teaching the basic principles and concept as provided in the activity teaching lecture note. In the second hour, the student will be divided into groups and provided with the pseudocodes of the problem statement. The students should translate the pseudocodes into equivalent MATLAB statements. Then, the students should modify the functions in the program and test the SATURN V rocket plotted trajectories.

The last twenty minutes of the second hour will be used to check the correctness of the implementation, result accuracy and difficulties encountered by the students.

Activity Materials:


Activity lecture note: (class_activity_lecture_note.docx) Class_Activity_Lecture_Note (Acrobat (PDF) 1.4MB Apr30 19)

Problem source codes: MATLAB file (Rocket_MISSILE.m) Rocket Milssile Launch (Matlab File 3kB Apr30 19)

The program outputs: (Rocket_Trajectory1.svg, Rocket_Trajectory2.tif, Numerical_Computation_Results.pdf)

Rocket Trajectory 2 (TIFF 190kB Apr30 19) Numerical Computation Results (Acrobat (PDF) 62kB Apr30 19)

Real-life Application:

Student Handout File: (Students_Assignment.docx) Student Assinment (Acrobat (PDF) 521kB Apr30 19)

SATURN V Rocket Launch: (RocketLaunch.m, RocketLaunch.eps, RocketLaunch.asv) Rocket Launch (Matlab File 915bytes Apr30 19) Rocket Launch eps (MATLAB Live Script 186kB Apr30 19)

Function GetAccelaration: (GetAccelaration.m) Function Get Acceleration (Matlab File 226bytes Apr30 19)

Function <a>GetDrag</a>: (GetDrag.m) Function Get Drag (Matlab File 211bytes Apr30 19)

Function GetDragCoeff: (GetDragCoeff.m) Function GetDrag Coefficient (Matlab File 221bytes Apr30 19)

Function GetGravity: (GetGravity.m) Function Get Gravity (Matlab File 129bytes Apr30 19)

Function GetMass: (GetMass.m) Function Get Mass (Matlab File 320bytes Apr30 19)

Function GetThrust: (GetThrust.m) [file 281756

Teaching Notes and Tips

The students should cover the basic introduction to MATLAB and built-in functions, arrays and vector indexing, loops, plotting and visualization as a prerequisite to this activity. The instructor should demonstrate the basic computational concepts, such as mathematical modelling, algorithm analysis and design techniques and how they can be applied in real life problems and use MATLAB as a tool for the design and implementation. Sometimes the students may encounter a difficulty in verifying the accuracy of the results. To test the accuracy of the MATLAB program, the student should modify and run the program using different parameter values and notice the change in the flight trajectories.


In order to ensure that the students have met the goals of this classroom activity, the following questions should be answered?

i) What are the ranges of the rocket for angle between 0o and 90° degrees?

ii) What are the maximum ranges?

iii) Plot the trajectories for angle between 5 and 85° degrees.

iv) Plot the maximum-range trajectory.

v) Plot the velocity, height and acceleration of the Saturn V rocket launch.

vi) Modify the RocketLaunch.m function to RocketLaunchH.m and GetConstAcceleration function into GetHAcceleration.m, and modify them to determine the horizontal displacement at which the rocket exceeds the speed of sound?

If the above questions are well answered, we can rest assured that the classroom activity has worked quite well. Then, the student should be introduced to the possible application of the concepts in different application domains, such as aerospace, rocket science, etc.