I want to calculate the

a) thrust b) mass of fuel c) optimal staging

of a rocket, which shall fly up to for example an altitude of 50 km in a ballistic flight trajectory.

In school I learned the rocket equation which gives me a delta in velocity for a specific staging. But what can I do with the delta velocity?

So first, the ballistic flight is not vertical and second, I do not know how much delta in velocity I need for getting up to 50 km in a ballistic flight. And third, there is also drag.

In school it was easy, there we had to achieve a certain delta v for escaping earth. Is there any use of the delta velocity for my excersice?

  1. Can I use any energy balances for this problem? If I loose energy by drag , I think it can be difficult with energy equation (potential height = energy in the tank) , right?

  2. I need to use force equilibrium to calculate this?

Thank you everybody for your hints. This topic really confuses me.


  • 5
    $\begingroup$ Once you start factoring in drag, most of the calculation shortcuts stop working. You might be able to construct and solve a differential equation for this, but more likely, you'll need to use a numerical simulation. $\endgroup$
    – Mark
    Feb 6, 2021 at 2:09

1 Answer 1


Short answer:

Yes, you can use energy balances for this problem and the rocket equation can also be rewritten in a way to include thrust (force), the mass of the fuel and optimal staging.

Long answer

One can use the rocket equation to get the thrust, mass of fuel and optimal staging needed, but using only that equation will not be enough. The rocket equation is useful to find out one of the following variables:

  • Delta V
  • Isp
  • Mass of the rocket (Before the burn)
  • Mass of the rocket (After the burn) $$\Delta v=I_{sp} \cdot g \cdot ln\left(\frac{M_{before}}{M_{after}} \right)$$

You mentioned that you wanted the thrust of the rocket engine. The thrust of the rocket does determine the Isp, however also the mass flow rate. The Isp of a rocket engine increase when there is more thrust and/or less fuel needed (lower mass flow rate) $$I_{sp}=\frac{force}{Mass\ flow\ rate \cdot g } $$

The rocket formula can be rearrange to include the force instead of the Isp.

$$\Delta v=\frac{force}{Mass\ flow\ rate \cdot g } \cdot g \cdot ln\left(\frac{M_{before}}{M_{after}} \right)$$ $$\Delta v=\frac{force}{Mass\ flow\ rate } \cdot ln\left(\frac{M_{before}}{M_{after}} \right)$$

There are multiple ways to find the delta v to get up to 50 km. You can use the energy balance to do so.

$$ E_{potential}= E_{Kinetic}-E_{thermal\ (because\ of\ drag)}$$ $$ E_{Kinetic}= E_{potential}+E_{thermal}$$

In an optimal scenario, the ballistic flight would be vertical, but in reality, that is usually not the case. To determine the height the rocket will go, you cannot use v, but instead $v_{vertical}$.


The distance the rocket will travel horizontally can be determined with $v_{horizontal}$. Of course it will slow down because of drag, but if there were no drag, the distance would be just $v_{horizontal}\cdot t_{(time)}$.

Another way to calculate the horizontal distance it will travel is to use the range formula. You do need to know the angle of the launch though. The problem about this formula is that it assumes the projectile reaches its maximum velocity at launch, lands at the same altitude and it ignores drag. $$distance=\frac{v^2}{g} \cdot sin(2\cdot angle)$$

When using the energy equation to calculate the necessary delta V, it is important to know that for higher launches, you cannot use mgh as the potential energy. At 50 km you might be able to get away with it, but the issue is that g changes at depending how far away you are from Earth. For objects further away, you should use this formula:

$$E_{potential}=\frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r^2}$$

This formula can be used to calculate the potential energy an object has to another object. In the case of your rocket, you would need to calculate the potential energy it has on the ground and the potential energy it has 50 km in the air and then use the difference as your potential energy.

$$E_{potential} = \frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{1}^2}-\frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{2}^2} $$

  • $r_1$: The distance between the rocket at 50km and Earth's center
  • $r_2$: The distance between the rocket on the ground and Earth's center

To calculate the drag is a bit more complex. The formula for the drag is:

$$F = \frac{A \cdot v^2 \cdot cd \cdot p }{2}$$

An issue with this is that multiple variables here are changing during the launch. The main ones you need to focus on is the air density, force and the velocity.

What you can do is to write a program which calculates the force at multiple parts of the flight trajectory either in Matlab, in C on visual Studio code, on Excel or what other program you prefer to use. I would recommend Excel if you want to get a result quick and easy because it requires very little programming knowledge and Matlab if you want to do more complex calculations in the future.

I wrote this program in C where you can calculate the average force, velocity and air pressure during a the flight. You can change the code to your needs, since this is just a simple script which calculates a few values.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void) {
// Defining the variables
    float Force, Area, velocity,thrust_time, cd, airpressure, time,acceleration, altitude,load,save,save1,save2,results;

//Giving the variables a value:
    printf("Area [in m^2]:");

    printf("Average acceleration [in m/s^2]:");


    printf("targeted altitude: [in m]:");

    printf("thrust time [in s]:");

    printf("Height until the next value [in m]:");

//Calculating the average force of drag:
printf("Values of the rocket during flight\n\n");

    for (float i = 0; i <= altitude; i+=load) {
        //air pressure
        airpressure = (1.225 *exp(-(i)/8400)); 
        save = save + airpressure;
        //Force from drag

        if (((acceleration * thrust_time) < sqrt(2 * acceleration * i)) && (sqrt(2 * 9.81 * (i - (acceleration * pow(thrust_time,2)))) > 0)){
            velocity = (acceleration*thrust_time) - sqrt(2 * 9.81 * (i - (acceleration * pow(thrust_time,2))));
            Force = Area * cd * airpressure * pow(velocity,2) /2;
         else {
            velocity = sqrt(2*(acceleration-9.81)*i);
            Force = Area * cd * airpressure * pow(velocity,2) /2;

           save1 += Force;
           save2 += velocity;

           //Putting the values into a graph
           printf("At %f meters|",i);
           printf(" airpressure:%5.4f |",airpressure);
           printf(" Force: %lf |",Force);
           printf(" Velocity: %lf",velocity);


           if (velocity < 0)
            i = altitude;
           results +=1;

//Average values
float num_iterations = results;

float average_airpressure= save / num_iterations;
printf("\nAverage airpressure: %f ",average_airpressure);

float average_force = save1 / num_iterations;
printf("\nAverage Force: %f ",average_force);

float average_velocity = save2 / num_iterations;
printf("\nAverage velocity: %f ",average_velocity);

   return 0;

With that you can calculate the delta v needed to reach 50 km. Also such a program can give you the values needed such as the average force from drag to calculate the velocity using the energy equation.

$$E_{Kinetic}= E_{potential}+E_{thermal}$$ $$ \frac{m \cdot \Delta v^2}{2}= \frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{1}^2}-\frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{2}^2}+force \cdot height$$

$$ \Delta v^2=\frac{2 \cdot \frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{1}^2}-2 \cdot \frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{2}^2}+2 \cdot f \cdot (r_1 - r_2)}{m}$$

$$ \Delta v=\sqrt{\frac{2 \cdot \frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{1}^2}-2 \cdot \frac{G \cdot \ M_{Earth} \cdot m_{rocket}}{r_{2}^2}+2 \cdot f \cdot (r_1 - r_2)}{m}}$$

Using this you can calculate the delta v needed to launch a rocket up to 50 km in the air. The velocity here is the vertical velocity, meaning that if the rocket launches in a horizontal direction or at any angle other than 90 degrees, you will need more delta v.

To get the total delta v of a rocket launching from an angle, you need to just use Pythagorean theorem. $$v_{total}^2 = v_{horizontal}^2 + v_{vertical}^2$$ $$v_{total}=\sqrt{ v_{horizontal}^2 + v_{vertical}^2}$$

To calculate the mass of the fuel, you will need to use the rocket equation. There are 2 masses. The mass before the rocket launched and the mass after it has launched. Since you want to know the fuel I would divide the mass into wet mass (the fuel) and dry mass (everything else).

$m_{before}$ = $m_{dry} + m_{wet}$

$m_{after}$ = $m_{dry}$

$$\Delta v=I_{sp} \cdot g \cdot ln\left(\frac{M_{before}}{M_{after}} \right)$$ $$ln\left(\frac{M_{before}}{M_{after}} \right)=\frac{I_{sp} \cdot g}{\Delta v}$$ $$\frac{M_{before}}{M_{after}} =e^{\frac{I_{sp} \cdot g}{\Delta v}}$$ $$\frac{m_{dry} + m_{wet}}{m_{dry}} =e^{\frac{I_{sp} \cdot g}{\Delta v}}$$ $$m_{dry} + m_{wet} =\frac{e^{\frac{I_{sp} \cdot g}{\Delta v}}}{m_{dry}}$$ $$m_{wet} =\frac{e^{\frac{I_{sp} \cdot g}{\Delta v}}}{m_{dry}}-m_{dry} $$

Using this equation, you can calculate the fuel needed to get to 50km. How the formula is currently standing, it is only for single staged rockets. For multi-staged rockets, one would have to calculate each stage individually.

$$\Delta v_{total} = \Delta v_{1} + \Delta v_{2} + ....$$ $$Fuel_{total} =m_{wet\ stage\ 1} + m_{wet\ stage\ 2} + ....$$

$$m_{wet\ stage\ 1} =\frac{e^{\frac{I_{sp} \cdot g}{\Delta v_{1}}}}{m_{dry}}-m_{dry} $$ $$m_{wet\ stage\ 2} =\frac{e^{\frac{I_{sp} \cdot g}{\Delta v_{}}}}{m_{dry}}-m_{dry} $$

When calculating the fuel and stages needed for a ballistic rocket, you should first determine how energy dense the fuel is and how much thrust the engine produces. If the thrust of the engine is so small that the rocket accelerates under 1G, then it is too heavy and you should add a stage. Even at 1.5G another stage would be good. As long as the rocket is accelerating quickly and is not carrying too much deadweight with it, another stage isn't needed since a stage weighs weight, adds more complexity and a another point of failure.


  • The thrust can be calculated using the formula for the Isp $I_{sp}=\frac{force}{Mass\ flow\ rate \cdot g }$ --> $force =I_{sp} \cdot Mass\ flow\ rate \cdot g $
  • The equation balance can be used to calculate the delta v
  • To get the drag, the best way is to use a computer program
  • The mass of the fuel can be determined by rewriting the rocketry equation
  • You only should to add a stage if the rocket is accelerating to slowly or is carrying to much dead weight

Not the answer you're looking for? Browse other questions tagged or ask your own question.