Skip to main content
Mathematics LibreTexts

8.2: Bifurcations in 1-D Continuous-Time Models

  • Page ID
    7811
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    For bifurcation analysis, continuous-time models are actually simpler than discrete-time models (we will discuss the reasons for this later). So let’s begin with the simplest example, a continuous-time, first-order, autonomous dynamical system with just one variable:

    \[\frac{dx}{dt} =F(x)\label{(8.1)} \]

    In this case, the Jacobian matrix is a 1×1 matrix whose eigenvalue is its content itself (because it is a scalar), which is given by \(\frac{dF}{dx}\). Since this is a continuous-time model, the critical condition at which a bifurcation occurs in this system is given by

    \[Re \left.\frac{dF}{dx}\right|_{x=x_{eq}} =\left.\dfrac{dF}{dx}\right|_{x=x_{eq}}=0.\label{(8.2)} \]

    Let’s work on the following example:

    \[\frac{dx}{dt}= r-x^{2}\label{(8.3)} \]

    The first thing we need to do is to find the equilibrium points, which is easy in this case. Letting \(\frac{dx}{dt} = 0\) immediately gives

    \[x_{eq} =\pm\sqrt{r},\label{(8.4)} \]

    which means that equilibrium points exist only for non-negative \(r\). The critical condition when a bifurcation occurs is given as follows:

    \[\frac{dF}{dx} =-2x\label{(8.5)} \]

    \[\frac{dF}{dx}|_{x=x_{eq}}=\pm2\sqrt{r} =0\label{(8.6)} \]

    \[r=0\label{(8.7)} \]

    Therefore, now we know a bifurcation occurs when \(r = 0\). Moreover, by plugging each solution of Equation \ref{8.4} into \(\frac{dF}{dx} = −2x\), we know that one equilibrium point is stable while the other is unstable. These results are summarized in Table 8.1.

    Table \(\PageIndex{1}\): Summary of bifurcation analysis of \(dx/dt = r−x^2\).

    Equilibrium point \(r < 0\) \(0 < r\)
    \(x_{eq} = √r\) doesn’t exist stable
    \(x_{eq} = -√r\) doesn’t exist unstable

    There is a more visual way to illustrate the results. It is called a bifurcation diagram. This works only for systems with one variable and one parameter, but it is still conceptually helpful in understanding the nature of bifurcations. A bifurcation diagram can be drawn by using the parameter being varied as the horizontal axis, while using the location(s) of the equilibrium point(s) of the system as the vertical axis. Then you draw how each equilibrium point depends on the parameter, using different colors and/or line styles to indicate the stability of the point. Here is an example of how to draw a bifurcation diagram in Python:

    C 8,1.png

    c 8.1 pt 2.png

    The result is shown in Fig. 8.2.1, where the blue solid curve indicates a stable equilibrium point \(x_{eq} = √r\), and the red dashed curve indicates an unstable equilibrium point \(x_{eq} = −√r\), with the green circle in the middle showing a neutral equilibrium point. This type of bifurcation is called a \(saddle-node \ bifurcation\), in which a pair of equilibrium points appear (or collide and annihilate, depending on which way you vary \(r\)).

    Fig. 8.1.PNG
    Figure \(\PageIndex{1}\): Visual output of Code 8.1, showing a bifurcation diagram of a saddle-node bifurcation, obtained from Eq \ref{(8.3)}.

    Each vertical slice of the bifurcation diagram for a particular parameter value depicts a phase space of the dynamical system we are studying. For example, for \(r = 5\) in the diagram above, there are two equilibrium points, one stable (blue/solid) and the other unstable (red/dashed). You can visualize flows of the system’s state by adding a downward arrow above the stable equilibrium point, an upward arrow from the unstable one to the stable one, and then another downward arrow below the unstable one. In this way, it is clear that the system’s state is converging to the stable equilibrium point while it is repelling from the unstable one. If you do the same for several different values of \(r\), you obtain Fig. 8.2.2, which shows how to interpret this diagram.

    Fig. 8.2.PNG
    Figure \(\PageIndex{2}\): How to interpret a bifurcation diagram. Each vertical slice of the diagram depicts a phase space of the system for a particular parameter value.

    There are other types of bifurcations. A transcritical bifurcation is a bifurcation where one equilibrium point “passes through” another, exchanging their stabilities. For example:

    \[\frac{dx}{dt} =rx-x^{2}\label{(8.8)} \]

    This dynamical system always has the following two equilibrium points

    \[x_{eq} =0,r,\label{(8.9)} \]

    with the exception that they collide when \(r = 0\), which is when they swap their stabilities. Its bifurcation diagram is shown in Fig. 8.2.3.

    Another one is a pitchfork bifurcation, where an equilibrium point splits into three. Two of these (the outermost two) have the same stability as the original equilibrium point, while the one between them has a stability opposite to the original one’s stability. There are two types of pitchfork bifurcations. A supercritical pitchfork bifurcation makes a stable

    Fig. 8.3.PNG
    Figure \(\PageIndex{3}\): Bifurcation diagram of a transcritical bifurcation, obtained from Eq \ref{(8.8)}.

    equilibrium point split into three, two stable and one unstable. For example:

    \[\frac{dx}{dt} =rx-x^{3}\label{(8.10)} \]

    This dynamical system has the following three equilibrium points

    \[x_{eq} =0\pm \sqrt{r},\label{(8.11)} \]

    but the last two exist only for \(r ≥ 0\). You can show that \(x_{eq} = 0\) is stable for \(r < 0\) and unstable for \(r > 0\), while \(x_{eq} = ±√r\) are always stable if they exist. Its bifurcation diagram is shown in Fig. 8.2.4.

    In the meantime, a subcritical pitchfork bifurcation makes an unstable equilibrium point split into three, two unstable and one stable. For example:

    \[\frac{dx}{dt} =rx +x^{3}\label{(8.12)} \]

    This dynamical system has the following three equilibrium points

    \[x_{eq} =0 \pm \sqrt{-r},\label{(8.13)} \]

    but the last two exist only for \(r ≤ 0\). Its bifurcation diagram is shown in Fig. 8.2.5.

    Fig 8.4.PNG
    Figure \(\PageIndex{4}\): Bifurcation diagram of a supercritical pitchfork bifurcation, obtained from Eq \ref{(8.10)}.
    Fig 8.5.PNG
    Figure \(\PageIndex{5}\): Bifurcation diagram of a subcritical pitchfork bifurcation, obtained from Eq \ref{(8.10)}.

    These bifurcations can arise in combined forms too. For example:
    \[\frac{dx}{dt} =r +x-x^{3}\label{(8.14)} \]

    This dynamical system has three equilibrium points, which are rather complicated to calculate in a straightforward way. However, if we solve \(\frac{dx}{dt} = 0\) in terms of \(r\), we can easily obtain

    \[r=-x+x^{3},\label{(8.15)} \]

    which is sufficient for drawing the bifurcation diagram. We can also know the stability of each equilibrium point by calculating

    \[Re\frac{dF}{dx}|_{x=x_{eq}} =1-3x^{3},\label{(8.16)} \]

    i.e., when \(x^{2} > \frac{1}{3}\), the equilibrium points are stable, otherwise they are unstable. The bifurcation diagram of this system is shown in Fig. 8.2.6.

    Fig 8.6.PNG
    Figure \(\PageIndex{5}\): Bifurcation diagram showing hysteresis, obtained from Eq \ref{(8.14)}. Arrows are added to help with interpretation.

    This diagram is a combination of two saddle-node bifurcations, showing that this system has hysteresis as its dynamical property. Hysteresis is the dependence of a system’s output (asymptotic state in this case) not only on the input (parameter \(r\) in this case) but also on its history. To understand what this means, imagine that you are slowly changing \(r\) from \(-1\) upward. Initially, the system’s state stays at the stable equilibrium at the bottom of the diagram, which continues until you reach a critical threshold at \(r ≈ 0.4\). As soon as you cross this threshold, the system’s state suddenly jumps up to another stable equilibrium point at the top of the diagram. Such a sudden jump in the system’s state is often called a catastrophe. You get upset, and try to bring the system’s state back to where it was, by reducing \(r\). However, counter to your expectation, the system’s state remains high even after you reduce \(r\) below \(0.4\). This is hysteresis; the system’s asymptotic state depends not just on \(r\), but also on where its state was in the immediate past. In other words, the system’s state works as a memory of its history. In order to bring the system’s state back down to the original value, you have to spend extra effort to reduce r all the way below another critical threshold, \(r ≈−0.4\).

    Such hysteresis could be useful; every bit (binary digit) of computer memory has this kind of bifurcation dynamics, which is why we can store information in it. But in other contexts, hysteresis could be devastating—if an ecosystem’s state has this property (many studies indicate it does), it takes a huge amount of effort and resources to revert a deserted ecosystem back to a habitat with vegetation, for example.

    Exercise \(\PageIndex{1}\)

    Conduct a bifurcation analysis of the following dynamical system with parameter \(r\):

    \[\frac{dx}{dt} =rx(x+1)-x \label{(8.17)} \]

    Find the critical threshold of \(r\) at which a bifurcation occurs. Draw a bifurcation diagram and determine what kind of bifurcation it is.

    Exercise \(\PageIndex{2}\)

    Assume that two companies, A and B, are competing against each other for the market share in a local region. Let x and y be the market share of A and B, respectively. Assuming that there are no other third-party competitors, \(x + y = 1\) (100%), and therefore this system can be understood as a one-variable system. The growth/decay of A’s market share can thus be modeled as

    \[\frac{dx}{dt} =ax(1-x)(x-y), \label{(8.18)} \]

    here x is the current market share of A, \(1−x\) is the size of the available potential customer base, and \(x − y\) is the relative competitive edge of A, which can be rewritten as \(x−(1−x) = 2x−1\). Obtain equilibrium points of this system and their stabilities. Then make an additional assumption that this regional market is connected to and influenced by a much larger global market, where company A’s market share is somehow kept at p (whose change is very slow so we can consider it constant):

    \[\frac{dx}{dt} =ax(1-x)(x-y)+r(p-x) \label{(8.19)} \]

    Here \(r\) is the strength of influence from the global to the local market. Determine a critical condition regarding \(r\) and \(p\) at which a bifurcation occurs in this system. Draw its bifurcation diagram over varying \(r\) with \(a = 1\) and \(p = 0.5\), and determine what kind of bifurcation it is. Finally, using the results of the bifurcation analysis, discuss what kind of marketing strategy you would take if you were a director of a marketing department of a company that is currently overwhelmed by its competitor in the local market. How can you “flip” the market?


    This page titled 8.2: Bifurcations in 1-D Continuous-Time Models is shared under a CC BY-NC-SA 3.0 license and was authored, remixed, and/or curated by Hiroki Sayama (OpenSUNY) via source content that was edited to the style and standards of the LibreTexts platform.