Vous êtes sur la page 1sur 19

TUTORIAL III:

C ONTINUATION OF FOLD AND H OPF BIFURCATIONS


OF EQUILIBRIA IN TWO PARAMETERS . D ETECTION OF
CODIM 2 EQUILIBRIUM BIFURCATIONS .

M AIKEL M. B OSSCHAERT

Department of Mathematics
Hasselt University
Diepenbeek Campus
Agoralaan Gebouw D
3590 Diepenbeek

September 8, 2016

U NDER SUPERVISION OF P ROF. D R . Y URI A. K UZNETSOV


Contents

1 Continuation of fold and Hopf bifurcation of steady-states 3


1.1 Steady state fold bifurcations . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Steady state Hopf bifurcations . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Example: Delayed predator prey system 3


2.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Sequence of parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Continuation of steady state branch . . . . . . . . . . . . . . . . . . . . . 5
2.4 Plot bifurcation diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Continuation of fold Hopf bifurcation in two parameters . . . . . . . . . 7

3 Detecting and locating codimension-2 bifurcations 10


3.1 Normal forms for codimension-1 bifurcations of steady-states . . . . . . 10
3.1.1 Fold (1 = 0, b 6= 0) . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.2 Hopf (1,2 = i0 , `1 6= 0) . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Codimension-2 points on a fold curve (1 = 0) . . . . . . . . . . . . . . . 12
3.3 Codimension-2 points on a Hopf curve (1,2 = i0 ) . . . . . . . . . . . 13
3.4 Locating codim-2 bifurcations, except Bogdanov-Takens . . . . . . . . . 14
3.5 Locating Bogdanov-Takens . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

Consider a system of Delay Differential Equations (DDEs) with constant delays,

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 .

1.1 Steady state fold bifurcations

Let x Rn be a fold bifurcation point at parameter = 0 , i.e. the characteristic matrix


( x , 0 , ), see (5) of Tutorial II, has a simple zero eigenvalue. To continue the fold
point the defining system

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.

1.2 Steady state Hopf bifurcations

Let x Rn be a Hopf bifurcation point at parameter = 0 , i.e. the characteristic matrix


( x , 0 , i ) has one pair purely imaginary of complex eigenvalues i. To continue
the Hopf point the defining system

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.

2 Example: Delayed predator prey system

In [4] the following delayed predator prey system

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 ) ;

Here the functions HollingTanner_rhs, HollingTanner_deri and HollingTanner_mfderi


have been generated with the Maple script Maple_gen_sys.mw.

2.2 Sequence of parameters

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.

2.3 Continuation of steady state branch

For an initial steady state we fix the parameter values

= 0.4, = 0.78125, a = 0.5, m = 0.02, h = 0.098, = 0.5409.

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

br_insert: detected 2 of 2: hopf. Normalform:


L1: 192.7260.

which is generated by the function LocateSpecialPoints. A fold and a Hopf bifurcation


point have been detected. Also the critical normal form coefficients have been calculated,
see Section 3.1.1 and 3.1.2.

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 ' ) ;

2.5 Continuation of fold Hopf bifurcation in two parameters

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.3 0.3 hopf


fold
0.25 0.25

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.

% t i t l e ( ax2 , ' Fold i n beta d e l t a plane ' ) ;


f o l d _ b r a n c h 0 =br_contn ( funcs , fold_branch0 , 3 0 0 ) ;
fold_branch0 = br_rvers ( fold_branch0 ) ;
f o l d _ b r a n c h 0 =br_contn ( funcs , fold_branch0 , 3 0 0 ) ;

See Figure 2 for the continued branches.

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.

3.1 Normal forms for codimension-1 bifurcations of steady-states

Consider the steady-state x of (1) at = 0 . By a shift of coordinates and parameters it


can always be arranged that x = 0 and 0 = 0. Since we are only calculating the critical
normal form coefficients, we drop the parameter and write f ( x0 , x1 , . . . , x m ). To simplify
notation we write f 0 for f ( x , x , . . . , x ). Expanding f in X = x0 , x1 , . . . , x m Rn
Rm+1 around ( x , x , . . . , x ) yields
1 1
f (X) = D f 0 X + D2 f 0 ( X, X ) + D3 f 0 ( X, X, X )
  
2 3! (6)
1  4 0 1
D f ( X, X, X, X ) + D5 f 0 ( X, X, X, X, X ) + O( X 6 ),

+
4! 5!
where
m f i0 j n m f0
i j
D f i0 (q) = j
q = q,
j i
j=0 x k =1 j=0 x k
m 2 f i0 j1 j2
D2 f i0 (q, p) = x j1 x j2
q p
j1 ,j2 =0
n m 2 f i0 j j
= j1
q1 p2,
j2 k1 k2
k1 ,k2 =1 j1 ,j2 =0 xk1 xk2

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 ((), (), (), ( ), ( )) ,

where : C ([h, 0], Rn ) Rn(m+1) is defined by

() = ((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.

These can be normalized to satisfy

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

w = bw2 + O |w|3 , w R, (7)




where the critical normal form coefficient is given by


1 T
b= p B(, ), (8)
2
where
( ) = q. (9)
When a fold point is detected and located, the critical normal form coefficient b is
reported in the Matlab console.

3.1.2 Hopf (1,2 = i0 , `1 6= 0)

If the steady-state x 0 of (1) has a Hopf bifurcation at the parameter value 0 = 0,


then the characteristic equation det () = 0 has a pair of purely imaginary eigenvalues
1,2 = i0 , with 0 > 0, and no other eigenvalues on the imaginary axis. Let q, p Cn
such that
(i0 )q = 0, p T (i0 ) = 0.

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.

The critical normal form coefficient c1 can be computed as

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)

The first Lyapunov coefficient is given by

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.

3.2 Codimension-2 points on a fold curve (1 = 0)

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.

These are the conditions for a Bogdanov-Takens bifurcation. A test function to


detect this bifurcation is given by
f
BT = p T 0 (0)q.

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.

3.3 Codimension-2 points on a Hopf curve (1,2 = i0 )

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

If a codimension-2 bifurcation is detected, we want to locate the bifurcation point. This


is done with the bisection method:
1. Start with one point at which a test function is negative and one point at which the
test function is positive
2. Construct the point halfway between the positive and the negative point
3. Correct this point
4. Compute the test function at this point
5. If the test function is negative, make this point the new negative point; otherwise,
the new positive point
6. Repeat until the absolute value of the test function is smaller than some predefined
tolerance

3.5 Locating Bogdanov-Takens

For a Bogdanov-Takens bifurcation the defining system

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

4.1 Codim-2 bifurcations on the fold and Hopf

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 Hopf curve


f p r i n t f ( ' Codimensiontwo d e t e c t i o n along Hopf branch \n ' ) ;
[ hopf_branch_wbifs , h o p f 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 , hopf_branch0 ) ;

%% 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 ) ;

In the Matlab console we see the output

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

Figure 3: Bogdanov-Takens bifurcation points added at the point of intersection of the


fold and Hopf bifurcation curves.

----- Codimension-two detection along Hopf branch -----


HopfCodimension2: calculate stability if not yet present
HopfCodimension2: calculate L1 coefficients
HopfCodimension2: (provisional) 1 Bogdanov-Takens detected.
br_insert: detected 1 of 1: BT. Normalform:
a2: -0.381622268159964
b2: -1.689473582999841

----- Codimension-two detection along fold branch -----


FoldCodimension2: calculate stability if not yet present
FoldCodimension2: calculate fold normal form coefficients
FoldCodimension2: (provisional) 1 Bogdanov-Takens detected.
br_insert: detected 1 of 1: BT. Normalform:
a2: 0.381622268159964
b2: 1.689473582999843

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.

4.2 Plotting test functions

The second argument returned from the function LocateSpecialPoints is a structure


holding the test functions calculated along the branch.
%% T e s t f u n c t i o n s f o r codimension 2 b i f u r c a t i o n s along Hopf curve
figure ( 5 ) ; c l f

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 ' ) ;

%% T e s t f u n c t i o n s f o r codimension 2 b i f u r c a t i o n s along f o l d curve


figure ( 6 ) ; c l f
p l o t ( d e l t a _ f o l d , [ r e a l ( f o l d t e s t f u n c s . cusp ( 1 , : ) ) / 1 0 0 ; f o l d t e s t f u n c s . b t ; . .
f o l d t e s t f u n c s . zeho ] , ' . ' ) ;
g r i d on
legend ( { ' cusp /100 ' , ' BT ' , ' zero Hopf ' } , ' l o c a t i o n ' , ' northwest ' ) ;
s e t ( gca , ' ylim ' , [ 1 , 1 ] ) ;
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^ f $ ' , ' I n t e r p r e t e r ' , ' LaTex ' ) ;

See Figure 4 for the created plots.

16
1.4
tanh(genh)
1.2
BT
zero-Hopf
1

0.8

0.6
H

0.4

0.2

0.2

0.4

0.4 0.45 0.5 0.55 0.6 0.65


(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

Consider ones more the model of two interacting layers of neurons

x1 (t) = x1 (t) ag(bx1 (t 1 )) + cg(dx2 (t 2 )),



(14)
x2 (t) = x2 (t) ag(bx2 (t 1 )) + cg(dx1 (t 2 )),

with the numerical parameter values

b = 2.0, d = 1.2, 1 = 12.7, 2 = 20.2

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

Vous aimerez peut-être aussi