Académique Documents
Professionnel Documents
Culture Documents
M AIKEL M. B OSSCHAERT
Department of Mathematics
Hasselt University
Diepenbeek Campus
Agoralaan Gebouw D
3590 Diepenbeek
September 8, 2016
4 Example continued 14
4.1 Codim-2 bifurcations on the fold and Hopf . . . . . . . . . . . . . . . . . 14
4.2 Plotting test functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Assignment 18
2
1 Continuation of fold and Hopf bifurcation of steady-states
x (t) = f ( x (t 0 ), x (t 1 ), . . . , x (t m ), ), (1)
where x (t) Rn , f : Rn(m+1) R p Rn is a smooth function depending on a number
of parameters R p , and i , i = 0, . . . , m, are delays ordered such that 0 = 0 1
m .
f ( x, . . . , x, )
S f ( x, q, ) = ( x, , 0)q = 0, (2)
T
c q1
is used. This is the same defining system as in Tutorial II to locate the fold point. Here
q Rn and c T q 1 presents a suitable normalization of q Rn . The vector c Rn is
T
chosen as c = q(0) /(q(0) q(0) ), where q(0) is the initial value of q.
f ( x, . . . , x, )
S H ( x, q, , ) = ( x, , i )q = 0, (3)
cH q 1
is used. This is the same defining system as in Tutorial II to locate the Hopf point. Here
c H q 1 presents a suitable normalization of q Cn . The vector c Cn is chosen as
H
c = q(0) /(q(0) q(0) ), where q(0) is the initial value of q.
3
x y( x m)
x = rx 1 h,
K Ay + x m (4)
by(t )
y = sy 1 ,
x (t ) m
is considered. Here x and y stand for prey and predator population densities at time
t, respectively. The predator growth is of logistic type with growth rate r and carrying
capacity K in the absence of predation; and A stand for the predator capturing rate and
half saturation constant, respectively; s is the intrinsic growth rate of predator; however,
carrying capacity x/b (b is the conversion rate of prey into predators) depends on the
prey population density at time (t ). m is a constant number of prey using refuges;
h is the rate of prey harvesting. The parameters , A, m, h, s, b, and are all positive
constants. System (4) can be transformed into
xy
x = ( x + m)(1 x m) ay + x h,
y(t )
(5)
y = y
,
x (t )
see [4] for the transformation and the meaning of the new parameters.
2.1 Initialization
First, we load the DDE-BifTool core, the DDE-BifTool utilities and the normal form
extension. Then we initialize the funcs structure.
%%
clear ;
close a l l ; % close figures
addpath ( ' . . / . . / . . / d d e b i f t o o l ' , . . .
' . . / . . / . . / ddebiftool_extra_nmfm ' , . . .
' ../../../ ddebiftool_utilities ' );
%% Right hand s i d e
funcs=set_funcs ( . . .
' s y s _ r h s ' , @HollingTanner_rhs , . . .
' sys_tau ' , @ ( ) 2 , . . .
' s y s _ d e r i ' , @HollingTanner_deri , . . .
' s y s _ mfd eri ' , @HollingTanner_mfderi ) ;
For readability reasons we use variable names for the indexes of the parameters.
4
indbeta =1;
indtau = 2 ;
inda = 3 ;
indm = 4 ;
indh = 5 ;
inddelta =6;
g e t p a r =@( x , i ) a r r a y f u n (@( p ) p . parameter ( i ) , x . p o i n t ) ;
g e t x =@( x , i ) a r r a y f u n (@( p ) p . x ( i ) , x . p o i n t ) ;
bgetpar=@( x , i , b i f ) a r r a y f u n (@( p ) p . parameter ( i ) , x . p o i n t ( b r _ g e t f l a g s ( x , b i f ) ) ) ;
bgetx=@( x , i , b i f ) a r r a y f u n (@( p ) p . x ( i ) , x . p o i n t ( b r _ g e t f l a g s ( x , b i f ) ) ) ;
In the last four lines we created four anonymous functions which are useful for extracting
parameters, positions and bifurcations point from a branch later on.
Then
s 2
1
( x , y ) = 1 2m + + 2m 1 4(h + (m 1)m), x
2 a + 1 a + 1
(0.1726998, 0.06907993)
is a steady state. In the previous tutorial we continued the steady state by creating a
branch with two points manualy. The first point the steady state and the second point
the steady state slightly perturbed and corrected. This time we set up the steady state
branch by using the function SetupStst, which automatically does this procedure.
f p r i n t f ( ' Steady s t a t e branch \n ' ) ;
% setup st ea d y s t a t e
beta = 0 . 4 ;
a =0.5;
m= 0 . 0 2 ;
h=0.098;
tau =1/4 * ( a * b e t a +1)^2/ b e t a ;
delta =0.5409;
s t s t . parameter =[ beta , tau , a ,m, h , d e l t a ] ;
parameter_bd ={ ' max_bound ' , [ indbeta , 0 . 6 ; i n d d e l t a , 0 . 7 ] , . . .
' min_bound ' , [ indbeta , 0 . 4 ; i n d d e l t a , 0 . 4 ] , . . .
' max_step ' , [ 0 , 0 . 1 ; indbeta , 5 e 3; i n d d e l t a , 5 e 3 ] } ;
x s t e r = ( 1 / 2 ) * ( ( b e t a /( a * b e t a +1)+2 *m 1 ) + . . .
s q r t ((1 2 *mb e t a /( a * b e t a + 1 ) ) ^ 2 + 4 * (m* (1 m)h ) ) ) ;
yster=beta * x s t e r ;
s t s t . x =[ x s t e r ; y s t e r ] ;
% c o n t i n u e st ea d y s t a t e i n b e t a
5
Flag Point type Codimension
stst steady state 0
hopf Hopf 1
fold Fold 1
psol Periodic Solution 0
hcli Homoclinic 1
genh Generalized Hopf 2
hoho Double-Hopf 2
zeho Fold-Hopf (zero-Hopf) 2
BT Bogdanov-Takens 2
CP Cusp 2
Table 1: Possible values of the flag field of the point stucture for located bifurcation
point.
c o n t p a r= i n d b e t a ;
s t s t _ b r a n c h 0 = S e t u p S t s t ( funcs , ' x ' , [ x s t e r ; y s t e r ] , . . .
' parameter ' , s t s t . parameter , . . .
' c o n tp a r ' , contpar , ' max_step ' , [ 0 , 0 . 0 0 5 ] , ' min_bound ' , . . .
[ c o n tp a r 0 . 4 ] , ' max_bound ' , [ c o n tp a r 0 . 6 ] , . . .
' newheuristics_tests ' ,0);
figure ( 1 ) ; c l f
ax1=gca ;
[ s t s t _ b r a n c h 0 ] = br_contn ( funcs , s t s t _ b r a n c h 0 , 1 0 0 ) ;
[ s t s t _ b r a n c h _ w b i f s , s t s t _ t e s t f u n c s ]= L o c a t e S p e c i a l P o i n t s ( funcs , s t s t _ b r a n c h 0 ) ;
nunst_stst=GetStability ( stst_branch_wbifs ) ;
The function LocateSpecialPoints detects bifurcation points along branch of points and
compute all normal forms. If a bifurcation is detected it is located and added to the
branch. Depending on the type of bifurcation the flag field of the point structure is set,
see Table 1. The function GetStability returns a vector with the number of unstable
eigenvalues for each point in the branch.
In the Matlab console we see the output
----- Steady-state branch -----
BR_CONTN warning: boundary hit.
StstCodimension1: calculate stability if not yet present
StstCodimension1: (provisional) 1 fold 1 Hopf detected.
br_insert: detected 1 of 2: fold. Normalform:
b: -4.8868
6
2.4 Plot bifurcation diagram
With the help of the functions getpar, getx, bgetpar, bgetx and the array nunst_stst
we generate a bifurcation plot in which the stability along the steady state branch is
shown, see Figure 1b and the listing below.
b e t a _ s t s t =getpar ( stst_branch_wbifs , indbeta ) ;
x 1 _ s t s t =getx ( stst_branch_wbifs , 1 ) ;
figure ( 2 ) ; c l f
ax2=gca ;
c l a ( ax2 ) ;
p l o t ( ax2 , b e t a _ s t s t ( n u n s t _ s t s t == 0 ) , x 1 _ s t s t ( n u n s t _ s t s t = =0 ) , ' g . ' , . . .
b e t a _ s t s t ( n u n s t _ s t s t == 1 ) , x 1 _ s t s t ( n u n s t _ s t s t == 1 ) , ' r . ' , . . .
b e t a _ s t s t ( n u n s t _ s t s t == 2 ) , x 1 _ s t s t ( n u n s t _ s t s t == 2 ) , ' b . ' ) ;
hold ;
p l o t ( bgetpar ( s t s t _ b r a n c h _ w b i f s , indbeta , ' hopf ' ) , . . .
bgetx ( s t s t _ b r a n c h _ w b i f s , 1 , ' hopf ' ) , ' ks ' , ' MarkerSize ' , 4 )
p l o t ( bgetpar ( s t s t _ b r a n c h _ w b i f s , indbeta , ' f o l d ' ) , . . .
bgetx ( s t s t _ b r a n c h _ w b i f s , 1 , ' f o l d ' ) , 'mo ' , ' MarkerSize ' , 4 )
s t s t _ l g t e x t ={ ' u n s t a b l e =0 ' , ' u n s t a b l e =1 ' , ' u n s t a b l e =2 ' , ' hopf ' , ' f o l d ' } ;
legend ( ax2 , s t s t _ l g t e x t , ' l o c a t i o n ' , ' west ' ) ;
x l a b e l ( ' $\ b e t a $ ' , ' I n t e r p r e t e r ' , ' LaTex ' ) ;
y l a b e l ( ' $x_1$ ' , ' I n t e r p r e t e r ' , ' LaTex ' ) ;
We do the standard continuation of the fold and Hopf bifurcation points, using the
starting index obtained from the flagged point indices on the steady state branch.
%% C o n t i n u a t i o n o f Hopf b i f u r c a t i o n i n two parameters
% a f t e r i n i t i a l i z a t i o n o f hopfbranch
f p r i n t f ( ' Hopf branch \n ' ) ;
[ hopf_branch0 , suc ] = SetupHopf ( funcs , s t s t _ b r a n c h _ w b i f s , . . .
b r _ g e t f l a g s ( s t s t _ b r a n c h _ w b i f s , ' hopf ' ) , . . .
' c o n tp a r ' , [ i n d d e l t a , i n d b e t a ] , . . .
' d i r ' , indbeta , ' s t e p ' , 0 . 0 0 2 , parameter_bd { : } ) ;
disp ( [ ' suc= ' , num2str ( suc ) ] ) ;
figure ( 3 ) ; c l f
ax3=gca ;
% t i t l e ( ax3 , ' Hopf i n beta d e l t a plane ' ) ;
hopf_branch0=br_contn ( funcs , hopf_branch0 , 3 0 0 ) ;
%% C o n t i n u a t i o n o f f o l d b i f u r c a t i o n i n two parameters
% a f t e r i n i t i a l i z a t i o n of foldbranch
f p r i n t f ( ' f o l d branch \n ' ) ;
[ fold_branch0 , suc ]= SetupFold ( funcs , s t s t _ b r a n c h _ w b i f s , . . .
br_getflags ( stst_branch_wbifs , ' fold ' ) , . . .
' c o n tp a r ' , [ i n d d e l t a , i n d b e t a ] , ' d i r ' , i n d d e l t a , ' s t e p ' , 0 . 0 0 5 , . . .
parameter_bd { : } ) ;
disp ( [ ' suc= ' , num2str ( suc ) ] ) ;
figure ( 3 ) ;
7
0.5 0.5
0.45 0.45
0.4 0.4
unstable=0
0.35 0.35
unstable=1
unstable=2
x1
x1
0.2 0.2
0.15 0.15
0.4 0.42 0.44 0.46 0.48 0.5 0.4 0.42 0.44 0.46 0.48 0.5
(a) (b)
Figure 1: In (a) the steady state branch is shown. In (b) the stability is visualized along
the branch.
8
0.51
0.5
0.5
0.49
0.49
0.48
0.48
0.47
0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75
Figure 2: Continuation of the detected fold and Hopf points in the (, ) plane.
9
3 Detecting and locating codimension-2 bifurcations
Due to the existence of a finite-dimensional smooth center manifold for Delay Differ-
ential Equations it is possible to lift the normal form theory for Ordinary Differential
Equations (ODEs) to DDEs. The ODE on the center manifold can be transformed into a
normal form by smooth invertible substitutions of the coordinates. The critical normal
form coefficients can be calculated with different methods. In [2] the theory of sun-star
calculus was combined with the approach used in [3] for calculating critical normal
form for ODEs. We refer to [2] for the derivation of the critical normal form coefficients.
Here we will simply list the codim 1 critical normal forms on the center manifold and
demonstrate how to compute their coefficients. Readers familiar with normal forms for
ODEs will notice the similarity. The major difference is seen in the vectors used in the
critical coefficients. In ODEs eigenvectors and generalized eigenvectors of the Jacobian
of the system appear in the coefficients. In DDEs the vectors used in the coefficients are
obtained from the Jordan chains of the characteristic matrix.
When investigating two-parameter problems, one usually encounters higher-order
degeneracies along codimension-1 bifurcation curves. Some of these degeneracies are
determined by the characteristic matrix, while others can only be detected using the
non-linear terms of (1). For this reason we start the section with the critical normal forms
for codimension-1 equilibrium bifurcations, namely the fold and Hopf. In Tutorial VI
we will treat the critical normal forms for codimension-2.
10
for 1 i n. The multilinear forms D3 f 0 ( p, q, z), D4 f 0 ( p, q, z, v) and D5 f 0 ( p, q, z, v, w)
can be expressed similarly. To resemble the ODE case, see [1] and [3], we define
Bi (, ) = D2 f i0 ((), ()) ,
Ci (, , ) = D3 f i0 ((), (), ()) ,
Di (, , , ) = D4 f i0 ((), (), (), ( )) ,
Ei (, , , , ) = D5 f i0 ((), (), (), ( ), ( )) ,
() = ((0), (1 ), . . . , (m )) .
3.1.1 Fold (1 = 0, b 6= 0)
If the steady-state x 0 of (1) has a fold bifurcation at the parameter value 0 = 0, then
the characteristic equation det () = 0 has a simple zero 1 = 0 and no other critical
eigenvalues. Then there exist vectors q, p Rn such that
(0)q = 0, p T (0) = 0.
p T 0 (0) q = 1
Here 0 denotes the derivative of the characteristic matrix with respect to . The restric-
tion of (1) to the one-dimensional center manifold W c has to the form
11
These can be normalized to satisfy
p T 0 (i0 )q = 1.
The restriction of (1) to the two-dimensional center manifold W c has the form
z = i0 z + c1 z2 z + O(|z|4 ) z C.
1 Th i
c1 = p B (, H20 ) + 2B (, H11 ) + C (, , ) ,
2
where
( ) = ei0 q,
H20 ( ) = e2i0 (, 0 , 2i0 )1 B(, ), (10)
1
H11 ( ) = (, 0 , 0) B(, ). (11)
1
`1 = Re c1 , (12)
0
When a Hopf point is detected and located, the first Lyapunov coefficient `1 is reported
in the Matlab console.
While continuing a fold branch, the following codim-2 points can be encountered:
1. An additional real eigenvalue 2 meets the imaginary axis, with their geometric
multiplicity remaining one, while the center manifold W c becomes two-dimensional:
1,2 = 0.
Here the vectors p, q are calculated using the function eig from Matlab. Depending
on the system being investigated, this function usually does not vanish exactly
when a Bogdanov-Takens bifurcation takes place on a Fold curve. Therefore we
f
also monitor the derivative of BT with respect to the parameters. We note that
at a Bogdanov-Takens point the normalization for the calculation of the critical
normal form coefficient b of a fold point cannot be achieved anymore.
12
2. Two extra non-real simple eigenvalues 2,3 meet the imaginary axis, and W c
becomes three-dimensional:
1 = 0, 2,3 = i0 ,
for 0 > 0. These conditions correspond to the fold-Hopf bifurcation, also known
as the Gavrilov-Guckenheimer bifurcation. The test function is the same as the test
function for a Hopf bifurcation on the steady-sate branch, see Section (3.1.2)
3. The eigenvalue 1 = 0 remains simple and the only one on the imaginary axis
(dim W c = 1), but the normal form coefficient a in equation (7) vanishes
1 = 0, a = 0.
These are the conditions for a cusp bifurcation. The coefficient b given in (8) can be
used as a test function to detect this bifurcation:
f
CP = b.
While continuing a Hopf branch, the following codim-2 points can be encountered:
1. An additional simple eigenvalue 3 = 0 meets the imaginary axis and W c becomes
three-dimensional:
1,2 = i0 , 3 = 0.
As seen before these are the conditions for the fold-Hopf bifurcation. For detection
we can use the test function for a fold
H
FH = det ((0)) . (13)
2. A Bogdanov-Takens bifurcation occurs when the two purely imaginary eigenvalues
1 and 2 collide. We use
H
BT = 0
as a test function.
3. An additional pair of simple non-real eigenvalues 3,4 = i1 , meet the imaginary
axis and W c becomes four-dimensional:
1,2 = i0 , 3,4 = i1 .
These conditions indicate a double-Hopf bifurcation. The value of the test function
for a double-Hopf bifurcation for the ith point on a Hopf branch is given by
H (i ) = nmfm_mrp(funcs,p,stmethod,remove_omega,true,threshold,isimag).
4. As in the fold case, where 1 = 0 remains a simple zero and the bifurcation is
determined by a critical normal form coefficient, there is also a bifurcation in the
Hopf case where the dimension W c remains the same. When the first Lyapunov
coefficient `1 from (12) vanishes we have a generalized Hopf bifurcation. The test
function for a generalized Hopf point is
GH = `1 .
13
3.4 Locating codim-2 bifurcations, except Bogdanov-Takens
f ( x, x, . . . , x, )
0 ( x, , 0)v
S( x, v, w, ) = ( x, , 0)v + ( x, , 0)w
(v, v) 1
(w, v)
is used. The initial point is obtained from continuation of either Hopf or fold points.
Standard Newton-Rhapson method is used to locate the point.
4 Example continued
To detect codim-2 bifurcations on the fold and Hopf branches we use the same function
LocateSpecialPoints used to detect codim-1 bifurcations on the steady state branch.
%% D e t e c t s p e c i a l p o i n t s along f o l d curve
f p r i n t f ( ' Codimensiontwo d e t e c t i o n along f o l d branch \n ' ) ;
[ f o l d _ b r a n c h _ w b i f s , f o l d t e s t f u n c s ]= L o c a t e S p e c i a l P o i n t s ( funcs , f o l d _ b r a n c h 0 ) ;
14
0.7
fold
Hopf
0.65
BT from Hopf
BT from fold
0.6
0.55
0.5
0.45
0.4
0.47 0.48 0.48 0.49 0.49 0.5 0.5 0.51 0.51
We add the detected Bogdanov-Takens point to the plot, see Figure 3. The reported
normal form coefficients a2 and b2 will be discussed in Tutorial IV.
15
p l o t ( d e l t a _ h o p f , [ tanh ( h o p f t e s t f u n c s . genh ( 1 , : ) ) ; . . .
hopftestfuncs . bt ; . . .
h o p f t e s t f u n c s . zeho ; . . .
h o p f t e s t f u n c s . hoho ] , ' . ' ) ;
g r i d on
legend ( { ' tanh ( genh ) ' , ' BT ' , ' zero Hopf ' , ' HopfHopf ' } ) ;
s e t ( gca , ' ylim ' , [ 0 . 5 , 1 . 5 ] ) ;
x l a b e l ( ' $\ d e l t a $ ' , ' I n t e r p r e t e r ' , ' LaTex ' ) ;
y l a b e l ( ' $\phi^H$ ' , ' I n t e r p r e t e r ' , ' LaTex ' ) ;
16
1.4
tanh(genh)
1.2
BT
zero-Hopf
1
0.8
0.6
H
0.4
0.2
0.2
0.4
(a) Test functions for codim-2 bifurcations along Hopf curve (Hopf-
Hopf invisible).
0.8
cusp/100
BT
0.6
0.4
0.2
f
0.2
0.4
0.6
0.8
1
0.4 0.45 0.5 0.55 0.6 0.65 0.7
(b) Test functions for codim-2 bifurcations along the fold curve
(zero-Hopf invisible).
Figure 4
17
5 Assignment
and
g(z) = [tanh(z 1) + tanh(1)] cosh(1)2 ,
see the previous tutorial.
1. Generate the user functions for the DDE (14).
2. Let c = 15/29. Continue the steady state ( x1? , x2? , a) = (0, 0, 0.25) in a.
3. Use the function LocateSpecialPoints to detect three Hopf points.
4. Continue the first two detected Hopf point in ( a, c).
5. Detect codim-2 bifurcations on the Hopf branches.
6. Plot the test functions.
7. Create a plot containing the Hopf branches and the detected codim-2 bifurcation.
18
References
[1] W.-J. Beyn, A. Champneys, E. Doedel, W. Govaerts, Yu.A. Kuznetsov, and B. Sand-
stede. Numerical continuation, and computation of normal forms. In Handbook of
dynamical systems, Vol. 2, pages 149219. North-Holland, Amsterdam, 2002.
[2] S. Janssens. On a normalization technique for codimension two bifurcations of
equilibria of delay differential equations. Masters thesis, Universiteit Utrecht, the
Netherlands, 2007. http://dspace.library.uu.nl/handle/1874/312252.
[3] Yu.A. Kuznetsov. Elements of Applied Bifurcation Theory, volume 112 of Applied
Mathematical Sciences. Springer-Verlag, New York, third edition, 2004.
[4] X. Liu, Y. Liu, and J. Wang. Bogdanov-Takens bifurcation of a delayed ratio-
dependent Holling-Tanner predator prey system. In Abstract and Applied Analy-
sis, volume 2013. Hindawi Publishing Corporation, 2013. http://dx.doi.org/10.
1155/2013/453402.
19