A differential equation for strength progression modeling

Strength athletes and coaches may be interested in modeling how strength levels increase over time. In this article we derive the following model function for this purpose:

\begin{align*} S(t) = (S_{i}-S_{m})e^{\alpha(t)k} + S_{m} + \alpha(t) (S_{i}-S_{m})e^{-k}, \quad \alpha(t) = \frac{ t_{i}-t }{t_{f}-t_{i}} \end{align*}

This function can be used to model athletic ability, or any similar quantity assumed to grow exponentially. Adjusting the value of \(k\) changes the non-linearity of the equation. In this article we derive the equation above from first principles and examine its properties.

The model equation

Table of contents

A differential equation as the starting point

We are interested in studying strength \(S\) as a function of time \(t\). Assuming that the change in strength is proportional to the difference between some maximal strength level (genetic potential) \(S_{m}\) and the current level of strength \(S(t)\), we obtain a linear differential equation

\begin{align*} \frac{d S(t)}{d t} = k \left ( S_{m} - S(t) \right ). \end{align*}

This equation says that when an athlete is far from his genetic potential his increase in strength will be greater, and models the familiar “beginner’s gains.” We assume that the current level of strength is known, and impose the initial condition \(S( t_{i} ) = S_{i}\). The variable \(t_{i}\) denotes the initial time and \(S_{i}\) denotes the initial strength level.

Solving the differential equation above and imposing the initial condition yields the solution

\begin{align*} \label{eqn_solution} \tag{1} S(t) = (S_{i}-S_{m})e^{\left ( t_{i}-t \right ) k} + S_{m}. \end{align*}

Note that the initial condition is satisfied, and the solution approaches \(S_{m}\) as \(t\) goes to infinity.

Non-dimensionalizing the exponent

We non-dimensionalize the exponent \(k\left ( t_{i}-t \right )\) to make \(k\) independent of the time range \(t_{f}-t_{i}\), where \(t_{f}\) denotes the final time of the time range we’re modeling. Having a model that is independent of the time range will be convenient in the following derivations.

We modify the exponent so that it becomes

\begin{align*} \frac{ t_{i}-t }{t_{f}-t_{i}}k. \end{align*}

We denote the fraction in the above as \(\alpha(t)\) for notational simplicity. The solution \eqref{eqn_solution} may then be written as

\begin{align} \label{initial} \tag{2} S(t) = (S_{i}-S_{m})e^{\alpha(t)k} + S_{m}. \end{align}

Note that \(\alpha(t_{i}) = 0\) and \(\alpha(t_{f}) = -1\). The plot below shows \eqref{initial} for several values of \(k\), where \(S_i = 100\), \(S_m = 110\), \(t_i = 1\) and \(t_f = 8\). This could represent an athlete going from a \(100\) kg bench press to \(110\) kg in \(8\) weeks.

The solution to the differential equation

Adding an affine function

The problem at the final time

The model function for \(S(t)\) is forced to obey the initial condition \(S(t_i) = S_i\), and by tweaking \(k\) the overall shape is altered. The problem is that \(S(t)\) is not fixed at \(t_{f}\). To fix it we wish to impose the condition:

\begin{align*} S( t_{f} ) = S_{m} \end{align*}

There is not enough freedom in \eqref{initial} to do this. We wish to perturb the solution gently so it hits the mark at \(t_{f}\). The least volatile perturbation with enough freedom is an affine function.

Adding an affine function to the solution

We modify equation \eqref{initial} by adding an affine term to it:

\begin{align*} S_{\text{mod}}( t) = S(t) + L(t) \end{align*}

The function \(L(t)\) is given by \(L(t) = at+b\), and we choose \(a\) and \(b\) to satisfy

\begin{align*} L(t_{i}) &= 0 \\ L(t_{f}) &= S_{m} - S(t_{f}). \end{align*}

The affine function will not interfere at \(t_{i}\), where we are happy. However \(S(t)\) will undershoot at \(t_{f}\), and \(L(t)\) will correct the undershoot. We get the linear system:

\begin{align*} \begin{bmatrix} t_{i} & 1\\ t_{f} & 1 \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = \begin{bmatrix} 0 \\ -(S_{i}-S_{m})e^{-k} \end{bmatrix} \end{align*}

The solution to the system of equations is given by:

\begin{align*} a &= \frac{S_{m}-S_{i}}{t_{f}-t_{i}}e^{-k} \\ b &= \frac{S_{m}-S_{i}}{t_{f}-t_{i}}e^{-k}(-t_{i}) \end{align*}

Inserting this into the original equation and dropping the “mod” subscript yields

\begin{align*} S( t) = (S_{i}-S_{m})e^{\alpha(t)k} + S_{m} + \left ( t-t_{i} \right )\frac{S_{m}-S_{i}}{t_{f}-t_{i}}e^{-k}. \end{align*}

We recognize that \(\alpha(t)\) appears again, and pulling this out yields the final model

\begin{align*} \label{model_eqn} \tag{3} S( t) = (S_{i}-S_{m})e^{\alpha(t)k} + S_{m} + \alpha(t) (S_{i}-S_{m})e^{-k}, \quad \alpha(t) = \frac{ t_{i}-t }{t_{f}-t_{i}}. \end{align*}

Using the model equation

Here are some notes on practical use of the model.

  • The value of \(k\). The parameter \(k\) is a function of both the time range and the experience of the athlete. Setting \(k \approx 0\) yields an affine function, well suited for novice lifters and short time ranges. Long term planning requires \(k > 0\), and experienced athletes require periodization in addition to non-linearity.
  • Periodization. Periodization can be added by introducing multiplicative or additive sine terms, or sawtooth functions, or varying amplitudes and frequencies.

The figure below shows several \(52\) week strength progression plans with periodization implemented as a multiplicative sine term. Setting \(k >0\) is typically appropriate for long-term planning where it’s expected that the lifter makes the most progress initially.

The model equation with a wave


  • The book “Practical Programming for Strength Training” by Mark Rippetoe deals with creating training programs for novice, intermediate and advanced lifters. While not mathematical, the book describes genetic potential, non-linearity and periodization. The interpretations of these three terms are \(S_m\), \(k\) and the multiplicative sine wave.

Appendix: Non-linearity as a function of \(k\)

The following is a more detailed study of the non-linearity of the model.

Reduction to an affine function

We note that when \(k=0\), the model \eqref{model_eqn} reduces to the affine function

\begin{align*} S_{i}+\frac{ t_{i}-t }{t_{f}-t_{i}} (S_{i}-S_{m}). \end{align*}

Defining non-linearity

We wish to study the non-linearity of the solution for an arbitrary value of \(k\). The maximal deviation from a linear solution is denoted \(D\), and we define non-linearity as:

\begin{align*} \label{nonlinearity} \text{Non-linearity}=\mathrm{NL} = \frac{D}{S_{m}-S_{i}} \end{align*}

We expect that non-linearity will only be a function of \(k\). In the following, this will be demonstrated and the relationship will be examined.

Let \(L(t)\) be an affine solution to the problem with \(k=0\), and let the function \(F(t)\) be the difference between the actual solution and a perfectly linear solution:

\begin{align*} F(t) = S(t) - L(t) \end{align*}

The greatest deviation is found at the maximum, i.e. when

\begin{align*} \label{maxima}\frac{d F(t)}{d t} = 0. \end{align*}

Solving the equation above yields \(t^{\star}\), the value of \(t\) for which the deviation is maximal. The greatest deviation from linearity may be expressed as

\begin{align*} \label{greatestdeviation} D = F \left ( t^{\star} \right )= S\left ( t^{\star} \right ) - L \left ( t^{\star} \right ). \end{align*}

Computing \(t^{\star}\)

We start by figuring out what \(F(t)\) is:

\begin{align} \label{foft} F(t) &= \left [ (S_{i}-S_{m})e^{\alpha(t)k} + S_{m} + \alpha(t) (S_{i}-S_{m})e^{-k} \right ] \\ \nonumber &- \left [ S_{i}+\frac{ t_{i}-t }{t_{f}-t_{i}} (S_{i}-S_{m}) \right ] \end{align}

We are going to differentiate this function, set it equal to zero and solve for \(t^{\star}\). To expedite calculations and save space, we denote:

\begin{align*} \Delta S &= \left ( S_{i} - S_{m} \right ) \\ \Delta t &= \left ( t_{f} - t_{i} \right ) \end{align*}

We can now write the equation for \(F(t)\) in a more workable form as

\begin{align*} \label{foftworkable} F(t) = \Delta S e^{\alpha\left ( t \right )k}+S_{m}+\alpha\left ( t \right ) \Delta S e^{-k} + \frac{\Delta S}{\Delta t}\left ( t - t_{i} \right ) -S_{i}. \end{align*}

Differentiating the above with respect to time yields:

\begin{align} \label{differentiated} \tag{4} \frac{d F(t)}{d t} = \Delta S \left ( \frac{d\alpha\left ( t \right )}{d t} \right )ke^{\alpha\left ( t \right )k}+\left ( \frac{d \alpha\left ( t \right )}{d t} \right ) \Delta S e^{-k} + \frac{\Delta S}{\Delta t} = 0 \end{align}

Recalling the definition of \(\alpha(t)\), it is easily shown that

\begin{align*} \frac{\mathrm{d} \alpha\left ( t \right )}{\mathrm{d} t} = \frac{-1}{\Delta t}. \end{align*}

Which means we can write \eqref{differentiated} as:

\begin{align*} -\Delta S \frac{1}{\Delta t} ke^{\alpha\left ( t \right )k}-\frac{1}{\Delta t} \Delta S e^{-k} + \frac{\Delta S}{\Delta t} = 0 \end{align*}

We simplify and rid ourselves of \(\Delta S\) and \(\Delta t\):

\begin{align*} -ke^{\alpha\left ( t \right )k}-e^{-k} + 1 = 0 \end{align*}

The time variable \(t\) is contained in \(\alpha\left ( t \right )\), solving for it yields:

\begin{align*} \alpha\left ( t \right ) = \frac{ t_{i}-t }{t_{f}-t_{i}} = \frac{1}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) \end{align*}

At this time, the deviation from linearity is at a maximum. We denote it by \(t^{\star}\), and it is given by

\begin{align*} \label{t_max} t^{\star} = t_{i} + \frac{t_{i}-t_{f}}{k} \ln \left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ). \end{align*}

Limiting cases for \(t^{\star}\)

We take a quick break from the derivation of the non-linearity to consider limiting cases. It can be shown numerically, or using L’Hospital’s Rule, that:

\begin{align*} \label{limit1} \lim_{k \rightarrow 0} t^{\star} &= \frac{t_{i} + t_{f}}{2} \\ \label{limit2} \lim_{k \rightarrow \infty} t^{\star} &= t_{i} \end{align*}

The solution initially deviates at mid-range when one starts to increase the value \(k\). The deviation moves from mid-range to the start of the range as \(k\) is increased further.

An explicit equation for non-linearity

We return to our exposition on non-linearity, defined as:

\begin{align*} \mathrm{Non-linearity} = \frac{F\left ( t^{\star} \right )}{S_{m}-S_{i}} = \frac{S\left ( t^{\star} \right ) - L \left ( t^{\star} \right )}{S_{m}-S_{i}} \end{align*}

We now have an expression for \(t^{\star}\), which we substitute into \(F(t)\) above to obtain

\begin{align*} \label{foftworkable_ins} F(t^{\star}) = \Delta S e^{\alpha\left ( t^{\star} \right )k}+S_{m}+\alpha\left ( t^{\star} \right ) \Delta S e^{-k} + \frac{\Delta S}{\Delta t}\left ( t^{\star} - t_{i} \right ) -S_{i}. \end{align*}

From the definitions, we have that:

\begin{align*} \alpha(t) &= \frac{ t_{i}-t }{t_{f}-t_{i}} = \frac{ t_{i}-t }{\Delta t} \\ t^{\star} &= t_{i} + \frac{t_{i}-t_{f}}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) = t_{i} - \frac{\Delta t}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) \end{align*}

With some more algebra, it can be shown that

\begin{align*} \alpha(t^{\star}) = \frac{1}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ). \end{align*}

Our goal is to clean up

\begin{align*} F\left ( t^{\star} \right ) = \Delta S e^{\alpha\left ( t^{\star} \right )k} +S_{m} + \alpha(t^{\star}) \Delta S e^{-k} + \frac{\Delta S}{\Delta t} \left ( t^{\star} - t_{i} \right ) - S_{i}. \end{align*}

There are three terms in the above that need to be cleaned up:

\begin{align*} e^{\alpha\left ( t^{\star} \right )k} &= \frac{1}{k}\left ( 1- e^{-k} \right )\\ \alpha\left ( t^{\star} \right ) \Delta S &= \frac{\Delta S}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) \\ \frac{\Delta S}{\Delta t} \left ( t^{\star} - t_{i} \right )&= - \frac{\Delta S}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) \end{align*}

Inserting the three results above and substituting \(S_{m}-S_{i}\) with \(- \Delta S\), we obtain

\begin{align*} F(t^{\star}) =& \frac{\Delta S }{k}\left ( 1- e^{-k} \right ) - \Delta S + \frac{\Delta S}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) e^{-k} - \\ \nonumber & \frac{\Delta S}{k} \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ). \end{align*}

Now we pull out \(\Delta S\) and simplify to

\begin{align*} F(t^{\star}) = \Delta S \left [ \frac{1}{k}\left ( 1- e^{-k} \right )-1+\left ( \frac{e^{-k} - 1}{k} \right ) \ln\left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) \right ]. \end{align*}

Recall that the definition of non-linearity given by:

\begin{align*} \mathrm{Non-linearity} = \frac{F(t^{\star})}{S_{m}-S_{i}} \end{align*}

Substituting and realizing that \(\Delta S = S_i - S_m\) appears in both the numerator and the denominator, we finally obtain the desired result. Nonlinearity is given by the following expression:

\begin{align*} \mathrm{NL}(k) = 1 - \frac{1}{k}\left ( 1- e^{-k} \right ) - \left ( \frac{e^{-k} - 1}{k} \right ) \ln \left ( \frac{1}{k}\left ( 1- e^{-k} \right ) \right ) \end{align*}

And it is only a function of \(k\), as predicted.

Non-linearity as a function of k

Limiting cases for non-linearity

The limiting cases for non-linearity work out nicely as:

\begin{align*} \lim_{k\rightarrow 0} \mathrm{NL}(k) &= 0 \\ \lim_{k\rightarrow \infty} \mathrm{NL}(k) &= 1 \end{align*}

A negative value of \(k\) has no meaning for progression modeling, as we assumed positive proportionality in the differential equation. Furthermore, \(\mathrm{NL}(0)\) has no meaning because the maximum does not exist.