by Jean-Marc Ginoux (ginoux@univ-tln.fr)

© Copyright Jean-Marc Ginoux, University of South, Toulon-Var, 2005

http://ginoux.univ-tln.fr

This notebook contains an applet elaborated in order to calculate the Hopf bifurcation parameter of a dynamical system. It just needs Mathematica (version 3, 4 or 5).

Numerical estimation of the Hopf bifurcation parameter value

A. Dynamical system

Let's consider the following dynamical system :

((dx)/(dt))=(Subscript[x, 1])=f(x, y, z, λ)
((dy)/(dt))=(Subscript[y, 1])=g (x, y, z, μ)
((dz)/(dt))=(Subscript[z, 1])=h(x,y,z,ρ)

where λ, μ and ρ are parameters.

B. Bifurcation parameter

Choosing a bifurcation parameter between the set of paramters of the dynamical system. λ for example.

C. Fixed points

Express the fixed points in function of the parameter previously chosen.
Choosing λ as the Hopf bifurcation parameter and while fixing all the others, i.e., μ and ρ. Each fixed point may be expressed in function of the parameter λ.

Solve[f (x, y, z, λ) == 0,x or y or z]
Solve[g (x, y, z, μ) == 0,x or y or z]
Solve[h (x, y, z, ρ) == 0,x or y or z]

D. Functional jacobian matrix

a11 = Simplify[D[(Subscript[x, 1]), x]]

a12 = Simplify[D[(Subscript[x, 1]), y]]

a13 = Simplify[D[(Subscript[x, 1]), z]]

a21 = Simplify[D[(Subscript[y, 1]), x]]

a22 = Simplify[D[(Subscript[y, 1]), y]]

a23 = Simplify[D[(Subscript[y, 1]), z]]

a31 = Simplify[D[(Subscript[z, 1]), x]]

a32 = Simplify[D[(Subscript[z, 1]), y]]

a33 = Simplify[D[(Subscript[z, 1]), z]]

J = {{a11, a12, a13}, {a21, a22, a23}, {a31, a32, a33}}

MatrixForm[J]

(Subscript[Sp, 1]):=Eigenvalues[J];

E. Graphical estimation of the Hopf bifurcation parameter value

In order to find the range of this parameter, the real part of one of the complex conjugate eigenvalue is plotted in function of the parameter chosen (λ). Then, the location of the points where this function vanishes provides an estimation of the Hopf bifurcation parameter value.

Plot[Re[(Subscript[Sp, 1])[[2]]],{λ, (Subscript[x, min]), (Subscript[x, max])},PlotRange -> {(Subscript[y, min]), (Subscript[y, max])}]

It provides the approximate value: λ\(TraditionalForm\`\_estimate\)

To confirm this the other real part of the other complex conjugate eigenvalue is also plotted in function of  the parameter chosen (λ).

Plot[Re[(Subscript[Sp, 1])[[3]]],{λ, (Subscript[x, min]), (Subscript[x, max])},PlotRange -> {(Subscript[y, min]), (Subscript[y, max])}]

F. Numerical calculation of the Hopf bifurcation parameter value

While using the Mathematica function: FindRoot which uses a damped Newton's method, the secant method and Brent's method, the Hopf bifurcation parameter value may be found with a quite good accuracy depending on the choice of the operator and on the limit of the computer and software.

FindRoot[Re[(Subscript[Sp, 1])[[2]]]==0,{λ,λ\(\_estimate\)}]

This provides the Hopf bifurcation parameter value starting from the vicinity of its graphical estimation:  λ\(\_estimate\)

Then, it can be confirmed also for the other real part of the other complex conjugate eigenvalue.

FindRoot[Re[(Subscript[Sp, 1])[[3]]]==0,{λ,λ\(\_estimate\)}]