When rocket ejects its propellant at a variable rate (Viva Rocketry! Part 1.4)


A rocket is programmed to burn and ejects its propellant at the variable rate \alpha \cdot k \cdot e^{-kt}, where k and \alpha are positive constants. The rocket is launched vertically from rest. Neglecting all external forces except gravity, show that the final speed given to the payload, of mass P, when all the fuel has been burnt is

v= -c \log(1-{\frac{\epsilon m_0}{m_0+P}}) + {\frac{g}{k}\log(1-{\frac{\epsilon m_0}{\alpha}}}).

Here c is the speed of the propellant relative to the rocket, m_0 the initial rocket mass, excluding the payload. The initial fuel mass is \epsilon m_0.

From my previous post “An alternative derivation of rocket’s flight equation (Viva Rocketry! Part 1.3)“, we know in our present context,

\frac{dm}{dt} = - \; \alpha k e^{-kt}\quad\quad\quad(1)

Integrate (1) from 0 to t,

m(t)-m(0) = \int\limits_{0}^{t}{ -\alpha k e^{-kt}} dt = \alpha e^{-kt}\bigg|_{0}^{t}=\alpha e^{-kt}-\alpha

Since m(0) = m_0 + P,

m(t) = m_0 + P -\alpha +\alpha e^{-kt}.

The rocket’s flight equation now is

-mg = m \frac{dv}{dt} + c\cdot (-\alpha k e^{-kt})


\frac{dv}{dt} = \frac{c\alpha k e^{-kt}}{m_0+P-\alpha+\alpha e^{-kt}} -g\quad\quad\quad(2)

When all the fuel has been burnt at time t^*,

m(t^*) = (1-\epsilon) m_0 + P.

That is:

m_0 + P - \alpha + \alpha e^{-kt^*} = (1-\epsilon) m_0 + P\quad\quad\quad(3).

Solve (3) for t^*,

t^* = -\frac{1}{k}\log(1-\frac{\epsilon m_0}{\alpha})

Integrate (2) from 0 to t^*, we have

v(t^*) - v(0) = -c \log(m_0+P-\alpha + \alpha e^{-kt}) \bigg|_{0}^{t^*}- gt\bigg|_{0}^{t^*}

Since v(0) = 0,

v(t^*) = -c \log(\frac{m_0 + P -\alpha + \alpha e^{(-k) \cdot ({-\frac{1}{k}\log(1-\frac{\epsilon m_0}{\alpha}))}}} {m_0 + P -\alpha + \alpha e^{-k\cdot 0}}) - g\cdot( -\frac{1}{k}\log(1-\frac{\epsilon m_0}{\alpha}) - 0)

= -c \log(\frac{m_0+P-\alpha +\alpha (1-\frac{\epsilon m_0}{\alpha})}{m_0+P}) + \frac{g}{k}\log(1-\frac{\epsilon m_0}{\alpha})

= -c \log(\frac{m_0+P-{\epsilon m_0})}{m_0+P}) + \frac{g}{k}\log(1-\frac{\epsilon m_0}{\alpha})

gives the final speed

v(t^*) = -c \log(1-\frac{\epsilon m_0}{m_0+P}) + \frac{g}{k}\log(1-\frac{\epsilon m_0}{\alpha})


Exercise 1. Using Omega CAS Explorer, solve (1), (2), (3) for m(t), v(t), t^* respectively.

Exercise 2. Before firing, a single stage rocket has total mass m_0, which comprises the casing, instruments etc, with mass m_c, and the fuel. The fuel is programmed to burn and to be ejected at a variable rate such that the total mass of the rocket m(t) at any time t, during which the fuel is being burnt, is given by

m(t) = m_0 e^{\frac{-kt}{m_0}}

where k is a constant.

The rocket is launched vertically from rest. Neglect all external forces except gravity, show that the height h attained at the instant the fuel is fully consumed is

h = \frac{1}{2}(\frac{m_0}{k} \cdot \log{\frac{m_0}{m_c}})^2(\frac{ck}{m_0}-g)

c being the exhaust speed relative to the rocket.


An alternative derivation of ideal rocket’s flight equation (Viva Rocketry! Part 1.3)


I will derive the ideal rocket’s flight equation differently than what is shown in “Viva Rocketry! Part 1


\Delta m –  the mass of the propellant

m – the mass of the rocket at time t

v – the speed of the rocket and \Delta m at time t

u – the speed of the ejected propellant, relative to the rocket

p_1 – the magnitude of \Delta m‘s momentum

p_2 – the magnitude of rocket’s momentum

For the propellant:

\Delta p_1 = \Delta m \cdot (\boxed {v +\Delta v -u} ) - \Delta m \cdot v

=\Delta m\cdot v + \Delta m\cdot \Delta v -\Delta m\cdot u - \Delta m \cdot v

= -\Delta m \cdot u + \Delta m \cdot \Delta v

where \boxed {v +\Delta v -u} is the speed of \Delta m at t+\Delta t (see “A Thought Experiment on Velocities”)

By Newton’s second law,

F_1 = \lim\limits_{\Delta t \rightarrow 0}\frac{\Delta p_1}{\Delta t}

= \lim\limits_{\Delta t \rightarrow 0} \frac{-\Delta m \cdot u + \Delta m \cdot \Delta v}{\Delta t}.

For the rocket:

\Delta p_2 = (m-\Delta m) \cdot (v +\Delta v) - (m-\Delta m)\cdot v

= (m-\Delta m)(v +\Delta v-v)

= (m-\Delta m)\cdot {\Delta v}

= m \cdot \Delta v - \Delta m \cdot \Delta v

F_2 = \lim\limits_{\Delta t \rightarrow 0} \frac{\Delta p_2}{\Delta t}

= \lim\limits_{\Delta t \rightarrow 0} \frac{m \cdot \Delta v - \Delta m \cdot \Delta v}{\Delta t}.

By Newton’s third law,

F_2 = -F_1.


\lim\limits_{\Delta t \rightarrow 0} \frac{m \cdot \Delta v - \Delta m \cdot \Delta v}{\Delta t} = - \lim\limits_{\Delta t \rightarrow 0} \frac{-\Delta m \cdot u + \Delta m \cdot \Delta v}{\Delta t}

That is,

\lim\limits_{\Delta t \rightarrow 0} \frac{m \cdot \Delta v - \Delta m \cdot \Delta v}{\Delta t} + \lim\limits_{\Delta t \rightarrow 0} \frac{-\Delta m \cdot u + \Delta m \cdot \Delta v}{\Delta t} = 0.

It implies

\lim\limits_{\Delta t \rightarrow 0} \frac{m \cdot \Delta v - \Delta m \cdot \Delta v -\Delta m \cdot u + \Delta m \cdot \Delta v}{\Delta t} = 0


\lim\limits_{\Delta t \rightarrow 0} \frac{m \cdot \Delta v -\Delta m \cdot u}{\Delta t} = 0.


\lim\limits_{\Delta t \rightarrow 0} \frac{m \cdot \Delta v -\Delta m \cdot u }{\Delta t}= \lim\limits_{\Delta t \rightarrow 0} {\frac{m\cdot \Delta v  -u \cdot \Delta m}{\Delta t}}=m \cdot \lim\limits_{\Delta t \rightarrow 0}\frac{\Delta v}{\Delta t}-u \cdot \lim\limits_{\Delta t \rightarrow 0} \frac{\Delta m}{\Delta t},

\frac{dv}{dt} = \lim\limits_{\Delta t \rightarrow 0}\frac{\Delta v}{\Delta t},


\lim\limits_{\Delta t \rightarrow 0}\frac{\Delta m}{\Delta t}= \lim\limits_{\Delta t \rightarrow 0} \frac{m(t) - m(t+\Delta t)}{\Delta t}= -\lim\limits_{\Delta t \rightarrow 0} \frac{m(t+\Delta t) - m(t)}{\Delta t} = -\frac{dm}{dt}

we have

m \cdot \frac{dv}{dt} + u \cdot \frac{dm}{dt} = 0,

the ideal rocket’s flight equation obtained before in “Viva Rocketry! Part 1“.

Does gravity matter ? (Viva Rocketry! Part 1.2)


A single rocket expels its propellant at a constant rate k.

Assuming constant gravity is the only external force, show that the equation of motion is


where v is the rocket’s speed, c the speed of the propellant relative to the rocket, p the payload mass, and m_0 the initial rocket mass.

If the rocket burn is continuous, show that the burn time is \frac{\epsilon m_0}{k} and deduce that the final speed given to the payload is

v=-c \log(1-\frac{\epsilon m_0}{m_0+p}) - \frac{g\epsilon m_0}{k}

where 1-\epsilon is the structural factor of the rocket.

Estimate the percentage reduction in the predicted final speed due to the inclusion of the gravity term if

\epsilon=0.8, \frac{p}{m_0}=\frac{1}{100}, c=3.0\;km\;s^{-1}, m_0=10^5\;kg, and k=5 \times 10^3\;kg\;s^{-1}.

Find an expression for the height reached by the rocket during the burn and estimate its value using the data above.

Let’s recall the governing equation of rocket’s flight derived in “Viva Rocketry! Part 1“, namely,

F = m\frac{dv}{dt} + u\frac{dm}{dt}.

In the present context, m = m_0 + p- k t. It implies that




With u = c, we have

-(p+m_0-kt)g = (p+m_0-kt)\frac{dv}{dt}+c\cdot(-k),





The structural factor 1-\epsilon indicates the amount of fuel is \epsilon m_0. Since the fuel is burnt at a constant rate k, it must be true that at burnt out time T,

\epsilon m_0 = kT.


T=\frac{\epsilon m_0}{k}.

The solution to initial-value problem

\begin{cases} \frac{dv}{dt}=\frac{ck}{m_0+p-kt}-g\\ v(0) = 0 \end{cases}

tells the speed of the rocket during its flight while fuel is burnt (see Fig. 1):

v = -c \log(1-\frac{kt}{m_0+p})-gt\quad\quad\quad(1)

Screen Shot 2018-12-03 at 4.48.48 PM.png

Fig. 1

Evaluate (1) at burnt out time gives the final speed of the payload:

v_1=-c \log(1-\frac{\epsilon m_0}{m_0+p}) - \frac{g\epsilon m_0}{k}\quad\quad\quad(2)

Notice the first term of (2) is the burnt out velocity without gravity (see “Viva Rocketry! Part 1“)

It follows that the percentage reduction in the predicted final speed due to the inclusion of gravity is

\frac{\frac{g \epsilon m_0} {k}}{-c \log(1-{\epsilon \over {1+\frac{p}{m_0}}})}\quad\quad\quad(3)

Using the given values which are typical, the estimated value of (3) (see Fig. 2) is


Screen Shot 2018-12-03 at 3.43.03 PM.png

Fig. 2

This shows the results obtained without taking gravity into consideration can be regarded as a reasonable approximation and the characteristics of rocket flight indicated in “Viva Rocketry! Part 1” are valid.

Since v = \frac{dy}{dt}, (1) can be written as

\frac{dy}{dt} = -c \log(1-\frac{kt}{m_0+p})-gt

To find the distance travelled while the fuel is burnt, we solve yet another initial-value problem:

\begin{cases}\frac{dy}{dt} = -c \log(1-\frac{kt}{m_0+p})-gt \\ y(0) = 0 \end{cases}

Screen Shot 2018-12-03 at 4.54.24 PM.png

Fig. 3

The solution (see Fig. 3) is

y= -\frac{1}{2}g t^2 + ct - c\cdot (t-\frac{m_0+p}{k}) \cdot \log(1-\frac{kt}{m_0+p}).

Hence, the height reached at the burnt out time t=\frac{\epsilon m_0}{k} is

h = -\frac{g\epsilon^2 m_0^2}{2k^2}+\frac{c\epsilon m_0}{k}+\frac{c}{k}\cdot (p+(1-\epsilon)m_0) \cdot \log(1-\frac{\epsilon m_0}{m_0+p}).

Using the given values, we estimate that h \approx 27 \; km (see Fig. 4)

Screen Shot 2018-12-03 at 3.34.13 PM.png

Fig. 4

Exercise 1: Find the distance the rocket travelled while the fuel is burnt by solving the following initial-value problem:

\begin{cases}\frac{d^2y}{dt^2} =\frac{ck}{p+m_0-kt}-g \\ y(0) = 0, y'(0)=0 \end{cases}

Thunderbolt (Viva Rocketry! Part 1.1)


Fig. 1

Shown in Fig. 1 is an experimental car propelled by a rocket motor. The drag force (air resistance) is given by R = \beta v^2. The initial mass of the car, which includes fuel of mass m_f, is m_0. The rocket motor is burning fuel at the rate of q with an exhaust velocity of u relative to the car.  The car is at rest at t=0. Show that the velocity of the car is given by, for 0 \leq t \leq T,

v(t) = \mu \cdot \frac{1-({m \over m_0})^{\frac{2\beta \mu}{q}}}{1+({m \over m_0})^{\frac{2\beta \mu}{q}}},

where m=m_0-qt, \mu^2=\frac{qu}{\beta}, and T=\frac{m_f}{q} is the time when the fuel is burnt out.

We have derived the governing equation of rocket flight in “Viva Rocketry! Part 1“, namely,

F = m \frac{dv}{dt} + u \frac{dm}{dt}\quad\quad\quad(1)

From m=m_0-qt,  we have

\frac{dm}{dt} = -q.

Apply air resistance R=\beta v^2 as the external force, (1) becomes

-\beta v^2 = (m_0 - q t) \frac{dv}{dt} - u q.

And the car is at rest initially implies


It follows that the motion of the car can be modeled by an initial-value problem

\begin{cases} -\beta v^2 = (m_0 - q t) \frac{dv}{dt} - u q \\ v(0) = 0 \end{cases}\quad\quad\quad(2)

It suffices to show that the given v(t) is the solution to this initial-value problem:

Screen Shot 2018-11-28 at 9.28.46 AM.png

Fig. 2

An alternative is obtaining the stated v(t) through solving (2).

Screen Shot 2018-11-27 at 4.40.18 PM.png

Fig. 3

The fact that m = m_0 -qt, (-1)^{2 \frac{\sqrt{b}\sqrt{u}}{\sqrt{q}}} = 1 simplifies the result considerably,

\frac{\sqrt q \sqrt u}{\sqrt \beta}\cdot \frac{m_0^{\frac{2 \sqrt \beta \sqrt u}{\sqrt q}}-m^{\frac{2 \sqrt \beta \sqrt u}{\sqrt q}}}{m_0^{\frac{2 \sqrt \beta \sqrt u}{\sqrt q}}-m^{\frac{2 \sqrt \beta \sqrt u}{\sqrt q}}}\quad\quad\quad(3)

Divide both the numerator and denominator of (3) by m_0^{\frac {2 \sqrt{\beta} \sqrt{u}}{\sqrt{q}}} then yields

\frac{\sqrt q \sqrt u}{\sqrt \beta}\cdot \frac{1-(\frac{m}{m_0})^{\frac{2 \sqrt \beta \sqrt u}{\sqrt q}}}{1-(\frac{m}{m_0})^{\frac{2 \sqrt \beta \sqrt u}{\sqrt q}}}

which is equivalent to the given v(t) since \mu^2=\frac{qu}{\beta}.

At time t=T, the fuel is burnt out. It means

m_0-m_f = m_0 - qT.


T = \frac{m_f}{q}

Exercise 1: Solve (2) manually.

Hint: The differential equation of (2) can be written as \frac{1}{uq - \beta v^2} \frac{dv}{dt} = \frac{1}{m_0 - q t}.

Exercise 2: For m_0=900\;kg, m_f=450\;kg, q=15\;kg/sec, u=500\;m/sec, \beta=0.3, what is the burnout velocity of the car?

Viva Rocketry! Part 1


In this post, we will first look at the main characteristics of rocket flight, and then examine the feasibility of launching a satellite as the payload of a rocket into an orbit above the earth.

A rocket accelerates itself by ejecting part of its mass with high velocity.

Screen Shot 2018-11-09 at 9.37.30 AM.png

Fig. 1

Fig. 1 shows a moving rocket. At time t+\Delta t, the mass \Delta m leaves the rocket in opposite direction. As a result, the rocket is being propelled away with an increased speed.


m(\square), m_{\square} – the mass of rocket at time {\square}

\vec{v}_{\square} – the velocity of rocket at time \square

v(\square), v_{\square} – the magnitude of \vec{v}_{\square}

\vec{v}^*_{t+\Delta t} – the velocity of ejected mass \Delta m at t + \Delta t

v^*_{t+\Delta t} – the magnitude of \vec{v}^*_{t+\Delta t}

u – the magnitude of \Delta m‘s velocity relative to the rocket when it is ejected. It is time invariant.

From Fig. 1, we have

\Delta m = m_t - m_{t + \Delta t},

\vec{v}_t = v_{t},

\vec{v}_{t + \Delta t} = v_{t + \Delta t}

and most notably, the relationship between v^*_{t+\Delta t}, v_{t+\Delta t} and u (see “A Thought Experiment on Velocities”):

 v^*_{t+\Delta t} = u - v_{t + \Delta t}.

It follows that

\vec{v}^*_{t+\Delta t} = -v^*_{t+\Delta t} = v_{t + \Delta t} - u,

momentum at time t: \vec{p}(t) = m_t \vec{v}_t = m_t v_t


momentum at time t+\Delta t\vec{p}(t+\Delta t) = m_{t+\Delta t}\vec{v}_{t+\Delta t} + {\Delta m} \vec{v}^*_{t+\Delta t}=m_{t+\Delta t}\vec{v}_{t+\Delta t} + (m_t - m_{t+\Delta t}) \vec{v}^*_{t+\Delta t}= m_{t+\Delta t}v_{t+\Delta t} + (m_t - m_{t+\Delta t})(v_{t+\Delta t}-u).

Consequently, change of momentum in \Delta t is \vec{p}(t+\Delta t)- \vec{p}(t) = m_t (v_{t + \Delta t} - v_t) + u (m_{t + \Delta t} - m_t).

Apply Newton’s second law of motion to the whole system,

\vec{F}= {d \over dt} \vec{p}(t)

= \lim\limits_{\Delta t \rightarrow 0} {{\vec{p}(t+\Delta t) - \vec{p}(t)} \over \Delta t}

= \lim\limits_{\Delta t \rightarrow 0} { {m_t (v_{t + \Delta t} - v_t) + u (m_{t + \Delta t} - m_t)} \over {\Delta t} }

= \lim\limits_{\Delta t \rightarrow 0} {m_t {{v_{t + \Delta t} - v_t} \over {\Delta t}} + {u {{m_{t + \Delta t} - m_t} \over {\Delta t}}}}

= m_t \lim\limits_{\Delta t \rightarrow 0}{(v_{t+\Delta t} - v_t) \over {\Delta t}} + u \lim\limits_{\Delta t \rightarrow 0}{(m_{t +\Delta t} - m_t) \over \Delta t}

That is,

\vec{F} = m(t) {d \over dt} v(t) + u {d \over dt} m(t)

where \vec{F} is the sum of external forces acting on the system.

To get an overall picture of the rocket flight, we will neglect all external forces.

Without any external force, \vec{F} = 0. Therefore

0 = m(t) {d \over dt} v(t) + u {d \over dt} m(t)


{d \over dt} v(t) = -{u \over m(t)} {d \over dt} m(t)\quad\quad\quad(1)

That fact that u, m(t) in (1) are positive quantities shows as the rocket loses mass ({d \over dt} m(t) < 0), its velocity increases ({d \over dt} v(t) > 0)

Integrate (1) with respect to t,

\int {d \over dt} v(t)\;dt = -u \int {1 \over m(t)} {d \over dt} m(t)\;dt


v(t) = -u \log(m(t)) + c

where c is the constant of integration.

At t = 0, v(0)=0, m(0) = m_1 + P where m_1 is the initial rocket mass (liquid or solid fuel + casing and instruments, exclude payload) and P the payload.

It means c = u \log(m_1+P).

As a result,

v(t) = -u \log(m(t)) + u \log(m_1+P)

= -u (\log(m(t) - \log(m_1+P))

= -u \log({m(t) \over m_1+P})


v(t) = -u \log({m(t) \over m_1+P})\quad\quad\quad(2)

Since m_1 is divided into two parts, the initial fuel mass \epsilon m_1 (0 < \epsilon < 1), and the casing and instruments of mass (1-\epsilon)m_1, m(0) can be written as

m(0) = \epsilon m_1 + ( 1 - \epsilon) m_1 + P

When all the fuel has burnt out at t_1,

m(t_1) = (1 - \epsilon)m_1 + P

By (2), the rocket’s final speed at t_1

v(t_1) = -u \log({m(t_1) \over {m_1+P}})

= -u \log({(1-\epsilon)m_1+P  \over {m_1 + P}})

= -u \log({{m_1 + P -\epsilon m_1} \over {m_1+P}})

= -u \log(1-{{\epsilon m_1} \over {m_1+P}})

= -u \log(1-{\epsilon \over {1 + {P \over m_1}}})

= -u \log(1-{\epsilon \over {1 + \beta}})

where \beta = {P \over m_1}.

In other words,

v(t_1) =-u \log(1-{\epsilon \over {1 + \beta}})\quad\quad\quad(3)

Hence, the final speed depends on three parameters

u, \epsilon and \beta


u = 3.0\;km\;s^{-1}, \epsilon = 0.8 and \beta = 1/100.

Using these values, (3) gives

Screen Shot 2018-11-05 at 9.21.14 PM.png

v_1 = 4.7\;km\;s^{-1}\quad\quad\quad(4)

This is an upper estimate to the typical final speed a single stage rocket can give to its payload. Neglected external forces such as gravity and air resistance would have reduced this speed.

With (4) in mind, let’s find out whether a satellite can be put into earth’s orbit as the payload of a single stage rocket.

We need to determine the speed that a satellite needs to have in order to stay in a circular orbit of height h above the earth, as illustrated in Fig. 2.

Screen Shot 2018-11-08 at 3.47.09 PM.png

Fig. 2

By Newton’s inverse square law of attraction, The gravitational pull on satellite with mass m_{s} is

{\gamma \; m_{s} M_{\oplus} \over (R_{\oplus} + h)^2}

where universal gravitational constant \gamma = 6.67 \times 10^{-11}, the earth’s mass M_{\oplus} = 5.9722 \times 10^{24}\; kg, and the earth’s radius R_{\oplus} = 6371\;km.

For a satellite to circle around the earth with a velocity of magnitude v, it must be true that

{\gamma \; m_{s} M_{\oplus} \over (R_{\oplus} + h)^2} = {m_{s} v^2 \over (R_{\oplus}+h) }


v = \sqrt{\gamma \; M_{\oplus} \over (R_{\oplus}+h)}

On a typical orbit, h = 100\;km above earth’s surface,

Screen Shot 2018-11-02 at 10.04.41 AM.png

v = 7.8\;km\cdot s^{-1}

This is far in excess of (4), the value obtained from a single stage rocket.

The implication is that a typical single stage rocket cannot serve as the launching vehicle of satellite orbiting around earth.

We will turn to multi-stage rocket in “Viva Rocketry! Part 2”.


What moves fast, will slow down, Part One


This post aims to explain mathematically how populations change.

Our first attempt is based on ideas put forward by Thomas Malthus’ article “An Essay on the Principle of Population” published in 1798.

Let p(t) denotes total population at time t.

Assume in a small interval \Delta t, births and deaths are proportional to p(t) and \Delta t. i.e.

births = a \cdot p(t) \Delta t

deaths = b \cdot p(t) \Delta t

where a, b are constants.

It follows that the change of total population during time interval \Delta t is

p(t+\Delta t) - p(t) = a\cdot p(t)\Delta t - b \cdot p(t)\Delta t = r\cdot p(t)\Delta t

where r = a - b.

Dividing by \Delta t and taking the limit as \Delta t \rightarrow 0, we have

\lim\limits_{\Delta \rightarrow 0} {p(t+\Delta t) - p(t) \over \Delta t} = r \cdot p(t)

which is

{d \over dt} p(t) = r \cdot p(t)\quad\quad\quad(1)

a first order differential equation.

Since (1) can be written as

{1 \over p(t)} {d \over dt} p(t) = r,

integrate with respect to t; i.e.

\int {1 \over p(t)}{d \over dt} p(t)dt = \int {r} dt

leads to

\log p(t) = r\cdot t + c

where c is the constant of integration.

If at t=0, p(0) = p_0, we have

c = \log p_0

and so

p(t) = p_0 e^{r\cdot t}\quad\quad\quad(2)

The result of our first attempt shows that the behavior of the population depends on the sign of constant r. We have exponential growth if r > 0, exponential decay if r < 0 and no change if r = 0.

The world population has been on a upward trend ever since such data is collected (see “World Population by Year“)

Qualitatively, our model (2) with r>0 indicates this trend. However, it also predicts the world population would grow exponentially without limit. And that, is most unlikely to occur, since there are so many limitation factors to growth: lack of food, insufficient energy, overcrowding, disease and war.

Therefore, it is doubtful that model (1) is The One.

Our second attempt makes a modification to (1). It takes the limitation factors into consideration by replacing constant r in (1) with a function r(t). Namely,

r(t) = \gamma - \alpha \cdot p(t)\quad\quad\quad(3)

where \gamma and \alpha are both positive constants.

Replace r in (1) with (3),

 {d \over dt} p(t) = (\gamma - \alpha \cdot p(t)) p(t) = \gamma (1 - {p(t) \over {\gamma \over \alpha}}) p(t)\quad\quad\quad(4)

Since r(t) is a monotonic decreasing function, it shows as population grows, the growth slows down due to the limitation factors.

Let p_{\infty} = {\gamma \over \alpha},

{d \over dt} p(t) = \gamma (1- {p(t) \over p_{\infty}}) p(t)\quad\quad\quad(5)

This is the Logistic Differential Equation.

Written differently as

{d \over dt} p(t) - \gamma \cdot p(t) = -{\gamma \over p_{\infty}} p(t)^2,

the Logistic Differential Equation is also a Bernoulli’s equation (see “Meeting Mr. Bernoulli“)

Let’s understand (5) geometrically without solving it.

Two constant functions, p(t) = 0 or p_{\infty} are solutions of (5), since

{d \over dt} 0 = \gamma (1-{0\over p_{\infty}})  0 = 0


{d \over dt} p_{\infty} = \gamma (1-{p_{\infty} \over {p_{\infty}}}) p_{\infty} = 0.

Plot p(t) vs. {d \over dt} p(t) in Fig. 1, the points, 0 and p_{\infty}, are where the curve of {d \over dt} p(t) intersects the axis of p(t).

Screen Shot 2018-10-23 at 9.42.20 AM.png

Fig. 1

At point A where p(t) > p_{\infty}, since {d \over dt} p(t) < 0, p(t) will decrease; i.e., A moves left toward p_{\infty}.

Similarly, at point B where p(t)  < p_{\infty}, {d \over dt} p(t) > 0 implies that p(t) will increase and B moves right toward p_{\infty}.

The model equation can also tell the manner in which p(t) approaches p_{\infty}.

Let p = p(t),

{d^2 \over dt^2} p(t) = {d \over dt}({d \over dt} p)

= {d \over dp} ({d \over dt}p) \cdot {d \over dt} p

= {d \over d p}(\gamma (1-{p \over p_{\infty}})p)\cdot {d \over dt }p

= \gamma(1 - {2 p\over p_{\infty}})\cdot \gamma (1-{p \over p_{\infty}})p

= \gamma^2 p ({{2 p} \over p_{\infty}} -1)({p \over p_{\infty}}-1)

As an equation with unknown p,  \gamma^2 p ({{2 p} \over p_{\infty}} -1)({p \over p_{\infty}}-1)=0 has three zeros:

0, {p_{\infty} \over 2} and p_{\infty}.


{d^2 \over dt^2}p > 0 if p > p_{\infty},

{d^2 \over dt^2} p < 0 if {p_{\infty} \over 2} < p < p_{\infty}


{d^2 \over dt^2} p > 0 if p < {p_{\infty} \over 2}.

Consequently p(t), the solution of initial-value problem

\begin{cases} {d \over dt} p(t) = \gamma (1-{p(t) \over p_{\infty}}) p(t) \\  p(0)=p_0 \end{cases}\quad\quad(6)

where p_0 \neq 0, p_{\infty} behaves in the manner illustrated in Fig. 2.

Screen Shot 2018-10-23 at 9.50.25 AM.png

Fig. 2

If  p_0 > p_{\infty}, p(t) approaches p_{\infty} on a concave curve. Otherwise, when {p_{\infty} \over 2} \leq p_0 < p_{\infty}, p(t) moves along a convex curve.  For p_0 < {p_{\infty} \over 2}, the curve is concave first.  It turns convex after p(t) reaches {p_{\infty} \over 2}.

Next, let’s solve the initial-value problem analytically for p_0 \neq 0, p_{\infty}.

Instead of using the result from “Meeting Mr. Bernoulli“, we will start from scratch.

At t where p(t) \neq 0, p_{\infty},  we re-write (5) as

{1 \over p(t)(1-{p(t) \over p_{\infty}}) }{d \over dt} p(t) = \gamma.

Expressed in partial fraction,

({1 \over p(t)} + {{1 \over p_{\infty}} \over {1-{p(t) \over p_{\infty}}}}) {d \over dt} p(t) = \gamma.

Integrate it with respect to t,

\int ({1 \over p(t)} + {{1 \over p_{\infty}} \over {1-{p(t) \over p_{\infty}}}}) {d \over dt} p(t) dt = \int \gamma dt


\log p(t)  - \log (1-{p(t) \over p_{\infty}}) = \gamma t + c

where c is the constant of integration.


\log {p(t) \over {1-{p(t) \over p_{\infty}}}} = \gamma t + c.

Since p(0) = p_0, we have

c = {\log {p_{0} \over {1-{p_0 \over p_{\infty}}}}}

and so

\log ({{p(t) \over {1-{p(t) \over p_{\infty}}}} \cdot {{1-{p_0 \over p_{\infty}}}\over p_0}} )=\gamma t.


{{p(t) \over {1 - {p(t) \over p_\infty}}}= {{p_0 \cdot e^{\gamma t}} \over {1-{p_0 \over p_\infty}}}}.

Solving for p(t) gives

p(t) = { p_{\infty} \over {1+({p_{\infty} \over p_0}-1)e^{-\gamma \cdot t}}}\quad\quad\quad(7)

We proceed to show that (7) expresses the value of p(t), the solution to (6) where p_0 \neq 0, p_{\infty}, for all t ‘s (see Fig.3)

Screen Shot 2018-10-25 at 4.29.47 PM.png

Fig. 3

From (7), we have

 \lim\limits_{t \rightarrow \infty} p(t) = p_{\infty}.

It validates Fig. 1.

(7) also indicates that none of the curves in Fig. 2 touch horizontal line p(t) = p_{\infty}.

If this is not the case, then there exists at least one instance of t where p(t) = p_{\infty}; i.e.,

 {p_{\infty} \over {1+({p_{\infty} \over p_0}-1)e^{-\gamma \cdot t}}} = p_{\infty}.

It follows that

{({p_{\infty} \over {p_0}} - 1) e^{-\gamma t}} = 0

Since {e^{-\gamma t}} > 0 (see “Two Peas in a Pod, Part 2“), it must be true that

p_0 = p_{\infty}.

But this contradicts the fact that (7) is the solution of the initial-value problem (6) where p_0 \neq 0,p_\infty.

Reflected in Fig.1 is that A and B will not become p_{\infty}. They only move ever closer to it.

Last, but not the least,

{\lim \limits_{t \rightarrow \infty}} {d \over dt} p(t) =  \gamma (1-{{ \lim\limits_{t \rightarrow \infty} p(t)} \over p_{\infty}}) {\lim\limits_{t \rightarrow \infty} p(t)} = \gamma (1 - {p_{\infty} \over p_{\infty}}) p_{\infty} = 0.

Hence the title of this post.

You say, “y” I say, “y[x]”



You see things; and you say “Why?”

But I dream things that never were; and I say “Why not?”

George Bernard Shaw in Back to Methuselah


The Wolfram Language function DSolve and NDSolve can solve differential equations.

Let’s look at a few examples.

Example 1 Solving an ODE symbolically. The solution, a function, is evaluated at a given point.

Screen Shot 2018-10-06 at 8.55.21 PM.png

Example 2 Solving an ODE symbolically. Redefine a function and evaluate it at a given point.

Screen Shot 2018-10-06 at 8.52.38 PM.png

Example 3 Solving an ODE initial-value problem symbolically. Get the value at a given point from the symbolic solution.

Screen Shot 2018-10-06 at 8.44.42 PM.png

Example 4 Solving an ODE initial-value problem numerically. Get the value at a given point from the numerical solution.

Screen Shot 2018-10-06 at 8.57.59 PM.png

Regarding whether to specify ‘y‘ or ‘y[x]‘ in DSolve, the only decent explanation I can find is in Stephen Wolfram’s book “The Mathematica Book”. This is straight from horse’s mouth:

When you ask DSolve to get you a solution for y[x], the rule it returns specify how to replace y[x] in any expression. However, these rules do not specify how to replace objects such as y'[x]. If you want to manipulate solutions that you get from DSolve, you will often find it better to ask for solutions for y, rather than y[x].

He then proceeds to give an illustration:

Screen Shot 2018-10-07 at 12.30.46 AM.png

Had you started with DSolve[y'[x]==x+y[x], y[x], x], the result would be

Screen Shot 2018-10-07 at 12.34.12 AM.png

As expected, only y[x] is replaced.