Lecture 12: Derivatives and differential equations#
Recap#
- We discussed the concept of rate of change - speed is the rate of change of distance; 
- instantaneous speed is the limit of average speeds over shorter and shorter time periods, \[ \frac{D(t + \mathrm{d}t) - D(t)}{\mathrm{d}t} \text{ as } \mathrm{d}t \to 0; \]
- instantaneous rate of change as the limit of \[ \frac{(\text{value at time } t + \mathrm{d}t) - (\text{value at time } t)}{\mathrm{d}t} \text{ as } \mathrm{d}t \to 0. \]
 
- We defined the derivative of a function \(y(t)\) by \[ y'(t) = \lim_{\mathrm{d}t \to 0} \frac{y(t+\mathrm{d}t) - y(t)}{\mathrm{d}t}. \]
- We saw that speed, \(S(t)\), is the derivative of distance covered, \(D(t)\): \[ S(t) = D'(t) = \lim_{\mathrm{d}t \to 0} \frac{D(t+\mathrm{d}t) - D(t)}{\mathrm{d}t}. \]
- We saw a geometric interpretation of the derivative of \(y(t)\) by considering the slope of its graph: 
 
- The slope of the straight line approximation (chord) is \[ \frac{y(t + \mathrm{d}t) - y(t)}{\mathrm{d}t}. \]
Graphs and derivatives#
- We now know a geometric interpretation of the derivative of a function, as being equal to the function’s slope at each point. 
- This means we can sketch an approximation to the derivative of any given function. 
- In the following examples, the graph of a function \(y(t)\) is given and the graph of \(y'(t)\) is then approximated. 
Example 1#
 
Example 2#
 
Example 3#
The population of Leeds over time (fitted):
 
Differential equations#
- We have already seen that, for speed, \(S(t) = D'(t)\). 
- What is the rate of change of speed? 
- Answer: acceleration, \(a(t)\) say: - a positive value for \(a(t)\) means that speed is increasing whilst a negative value means that speed is decreasing. 
 
- When a model takes the form of an equation which involves one or more derivatives then it is called a differential equation. 
- We have already seen (and computationally solved) a simple example of a differential equation: \[ D'(t) = 1 + 5t - 6t^2 \]- where \(D(0) = 0\). 
- Most models of dynamic processes take the form of differential equations. 
- The following example uses the fact that the acceleration of an object is equal to the rate of change of its speed: - i.e. \(a(t) = S'(t)\). 
 
An object in free fall#
- Consider a simple model for an object falling from a large height, based on the two following assumptions: - all objects are attracted downward with an acceleration due to gravity of \(9.81 \, \mathrm{m} / \mathrm{s}^2\); 
- air resistance causes an object to decelerate in proportion to its speed (i.e., the faster it travels the greater the air resistance). 
 
- What is the net acceleration on the object? - If it is falling with speed \(S(t)\) the net acceleration downwards is \(g - kS(t)\) for some constant \(k\). 
 
- This results in the following differential equation: \[ S'(t) = g - k S(t). \]
- How could we solve this equation? - Recall how we solved \(D'(t) = 1 + 5t - 6t^2\)? 
- We can do a similar thing again: divide the time period into lots of small intervals and assume everything is approximately constant on each time interval. 
 
- We know that \[ S'(t) = \lim_{\mathrm{d}t \to 0} \frac{S(t + \mathrm{d}t) - S(t)}{\mathrm{d}t} \approx \frac{S(t+ \mathrm{d}t) - S(t)}{\mathrm{d}t} \]- for a small value of \(\mathrm{d}t\). 
- Hence we can say that: \[ S(t + \mathrm{d}t) = S(t) + \mathrm{d}t (g - k S(t)). \]
Python algorithm:#
def freefall(n):
    """
    Plot the trajectory of an object falling freely.
    Input: n number of timesteps
    """
    tfinal = 50.0  # Select the final time
    g = 9.81  # acceleration due to gravity (m/s)
    k = 0.2  # air resistance coefficient
    # initialise time and speed arrays array
    t = np.zeros([n + 1, 1])
    s = np.zeros([n + 1, 1])
    # set initial conditions
    s[0] = 0.0
    t[0] = 0.0
    dt = (tfinal - t[0]) / n  # calculate step size
    # take n time steps, in which it is assumed that the acceleration
    # is constant in each small time interval
    for i in range(n):
        t[i + 1] = t[i] + dt
        s[i + 1] = s[i] + dt * (g - k * s[i])
    # plot output
    plt.plot(t, s, label=f"n = {n}")
Python algorithm: Results#
 
Euler’s method#
- The approach we have used applies for any differential equation involving just a single derivative. 
- It is called Euler’s method. 
- We can always arrange such an equation in the form: \[ y'(t) = f(t, y) \quad \text{ subject to the initial condition } \quad y(t_0) = y_0. \]
- Examples: - \(y'(t) = 1+ 5t - 6t^2\) and \(y(0) = 0\). 
- \(y'(t) = g- ky\) and \(y(0) =0\). 
- \(y'(t) = -y^2 + \frac{1}{t}\) and \(y(1) = 2\). 
 
For the general equation we have the following algorithm:
- Set initial values \(t^{(0)}\) and \(y^{(0)}\). 
- Loop over all time steps, until the final time, updating using the formulae: \[\begin{split} \begin{aligned} y^{(i+1)} & = y^{(i)} + \mathrm{d}t f(t^{(i)}, y^{(i)}) \\ t^{(i+1)} & = t^{(i)} + \mathrm{d}t. \end{aligned} \end{split}\]
Example#
- Take three steps of Euler’s method to approximate the solution of \[ y'(t) = -y^2 + \frac{1}{t} \text{ subject to the initial condition } y(1) = 2 \]- for \(1 \le t \le 2\). 
- For this example we have: - \(n = 3\) 
- \(t_0 = 1\) 
- \(y_0 = 2\) 
- \(t_{\text{final}} = 2\) 
- \(\mathrm{d}t = (2-1)/3 = 1/3\) 
- \(f(t, y) = -y^2 + 1/t\). 
 
Summary#
- Given the graph of \(y(t)\) it is possible to sketch the graph of \(y'(t)\) (with some care!). 
- Computational models which involve dynamic processes usually involve the use of derivatives. 
- An equation which includes a derivative is known as a differential equation. 
- To solve a differential equation it is necessary to know some information about the solution at some starting point (e.g. initial distance travelled, initial speed, population at a given point in time, etc.). 
- One computational approach to solve such equations is Euler’s method - which gets more accurate with more sub-intervals used. 
Further reading#
- Wikipedia: Differential equations 
- Maths is fun: Differential equations 
- Wikipedia: Euler method 
- x-engineer: Euler integration method for solving differential equations 
Euler’s method in films:
- Catherine Meyers, Exploring the Math in `Hidden Figures’, Inside Science, 2017. 
The slides used in the lecture are also available
