Systems of differential equations 2
System Simplification
YouTube lecture recording from October 2020
The following YouTube video was recorded for the 2020 iteration of the course. The material is still very similar:
Recap
So far we have looked at systems of first order, linear ODEs in two dimensions
These systems can be solved analytically
3 methods of solving systems of first order ODEs
Diagonalisation extends to -dimensional systems
Plan
Aim to look at systems of first order, nonlinear ODEs in more dimensions
How we go about modelling a problem
Simplifying systems of ODEs
Reducing number of parameters
Reducing number of equations
Phase plane analysis
System simplification: rescaling
This predator-prey model is in dimensional terms and contains 5 parameters.
: prey intrinsic growth rate
: prey carrying capacity (bound to logistic growth)
: predation rate
: conversion efficiency
: per capita predator mortality rate
If we substitute
where are nondimensional, and , and is a typical values for , and .
Note that, when we are re-scaling time:
The original equations are:
And, after rescaling, we have:
Note that , and are arbitrary values for scaling , , and .
After rearranging we note that choosing will remove the parameter from the equations.
Choosing (or ) will remove a further parameter.
gives the two parameter system:
where we have shifted the groups of parameters to only two places.
We could make it more obvious that there are only two "tuning dials" by writing it as:
System simplification: conservation
Consider a chemical system where a product is formed from a substrate via an intermediate complex involving an enzyme.
This system can be written as a system of 4 ODEs for which describe the concentrations of and :
However, the enzyme is recycled: it is used in the complex and then released. This means that where is constant.
Making the substitution to eliminate we arrive at the 3 ODE system:
System simplification: quasi-steady state
In the previous example it may be known that the rate of conversion to complex (from and ) is much faster than the degradation of complex into product (rate ).
If this is the case then we can assume that the concentration of arrives at some level (a quasi-steady state) and then moves very slowly.
Solving for :
which is not a steady-state: it moves slowly with .
Substituting this quasi-steady state into the remaining equations gives an approximate system of 2 ODEs:
This means that we have used conservation and quasi-steady state to go from a 4-dimensional system to a two-dimensional approximation which captures some of the behaviour.
Two dimensions are good because we can plot their behaviour on a phase plane diagram.
Phase planes and nullclines
A system of nonlinear ODEs may have more than one fixed point (or may have none). Finding fixed points in two-dimensional systems is aided by nullclines.
An -nullcline is a line where and a -nullcline is a line where . (These are straight lines in the linear case.)
For example:
has -nullclines at and ; and -nullclines at and .
Nullcline intersections give us the fixed points. Nullclines can be annotated to give the direction (and magnitude) of the non-zero derivative.
Plot of the nullclines
Plot of the phase plane
The nullclines allow us to add arrows demonstrating the flow direction, and by following the arrows we can sketch the behaviour of solutions (green lines). The arrows can only cross the -nullclines vertically, and the -nullclines horizontally.
Python code to plot the phase plane
import numpy as np from matplotlib import pyplot as plt import scipy def dX_dt(X, t): return np.array([ X[0]*(1. - X[0]) - X[0]*X[1], 2.*X[1]*(1.-X[1]/2.) -3*X[0]*X[1]]) def plot_phase_plane(): plt.figure(figsize=(10,10)) init_x = [1.05, 0.9, 0.7, 0.5, 0.5, 0.32, 0.1] init_y = [1.0, 1.3, 1.6, 1.8, 0.2, 0.2, 0.2] plt.plot(init_x, init_y, 'g*', markersize=20) for v in zip(init_x,init_y): X0 = v # starting point X = scipy.integrate.odeint( dX_dt, X0, np.linspace(0,10,100)) plt.plot( X[:,0], X[:,1], lw=3, color='green') # plot nullclines x = np.linspace(-0.1,1.1,24) y = np.linspace(-0.1,2.1,24) plt.hlines(0,-1,15, color='#F39200', lw=4, label='y-nullcline 1') plt.plot(x,1 - x, color='#0072bd', lw=4, label='x-nullcline 2') plt.vlines(0,-1,15, color='#0072bd', lw=4, label='x-nullcline 1') plt.plot(x,2 - 3*x, color='#F39200', lw=4, label='y-nullcline 2') # quiverplot - define a grid and compute direction at each point X, Y = np.meshgrid(x, y) # create a grid DX = X*(1-X) - X*Y # evaluate dx/dt DY = 2*Y*(1 - Y/2.0) - 3*X*Y # evaluate dy/dt M = (np.hypot(DX, DY)) # norm growth rate M[ M == 0] = 1. # avoid zero division errors plt.quiver(X, Y, DX/M, DY/M, M) plt.xlim(-0.05,1.1) plt.ylim(-0.05,2.1) plt.xlabel('x') plt.ylabel('y')
Summary
Simplification
Rescaling to dimensionless quantities
Conservation
Quasi-steady state approximation
Nullclines are a powerful way of finding steady states and phase flow
Introductory problems
Introductory problems 1
Find the fixed points of the following linear systems:
Introductory problems 2
Find the fixed points of the following nonlinear systems:
Main problems
Main problems 1
Consider the chemical reaction network:
Write down the system of two linear ODEs which describe the evolution of the concentrations of A and B in this system under the law of mass action.
Find the ratio of concentrations of A and B for which this system is in steady state: that is the concentrations do not change over time.
Main problems 2
Consider the reversible enzyme reaction:
Verify the Haldane relation, which states that when the reaction is in equilibrium,
where and are the concentrations of and , respectively.
Main problems 3
The population of a host, , and a parasite, , are described approximately by the equations:
where are positive constants.
By a suitable change of scales show that these equations may be put in the simpler form
where .
Sketch the phase flow across the following lines:
;
;
;
;
, for greater than and less than 1.
Main problems 4
Consider a lake with some fish attractive to anglers. We wish to model the fish-angler interaction under the following assumptions:
the fish population grows logistically in the absence of fishing;
the presence of anglers depresses the fish growth rate at a rate jointly proportional to the size of the fish and angler populations;
anglers are attracted to the lake at a rate directly proportional to the number of fish in the lake;
anglers are discouraged from the lake at a rate directly proportional to the number of anglers already there.
Write down a mathematical model for this situation, clearly defining your terms.
Use a suitable scaling to show that a non-dimensionalised version of the model is