Escolar Documentos
Profissional Documentos
Cultura Documentos
This demo is an illustrative example, which uses a system of delay differential equations taken from [Shay,99].
which functions the user has to provide and how to put them into the structure funcs (demo1_funcs.html)
continuation of equilibria in a single parameter, demo1_stst.html
computation of their stability (eigenvalues of linearization), demo1_stst.html
continuation of Hopf bifurcations in two parameters (demo1_hopf.html)
computation of normal form coefficients for Hopf bifurcations (to check if they are supercritical or subcritical), and of normal form
coefficients for codimension-two bifurcations encountered along Hopf curves (demo1_normalforms.html),
branching off from a Hopf bifurcation to continue a family of periodic orbits in a single parameter demo1_psol.html
computation of stability of periodic orbits (Floquet multipliers of linearization) demo1_psol.html
continuation of homoclinic connections in two parameters demo1_hcli.html
continuation of folds of periodic orbits in two parameters demo1_POfold.html
Contents
Differential equations
First step: the definition of user-defined functions, see demo1_funcs.html
Differential equations
The differential equations for this example are
This system models two coupled neurons with time delayed connections. It has two components ( and ), three delays ( , and
), and four other parameters ( , , and ).
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1.html 1/2
7/25/2017 DDE-BIFTOOL demo 1 - Neuron
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1.html 2/2
7/25/2017 Definition of user functions
(Please load ddebiftool into path first, see demo1.html.) To define a system, the user should provide Matlab functions defining the
right-hand side (in the example called neuron_sys_rhs) and the indices for the delays in the parameter vector (called neuron_tau
in our example).
Contents
Right-hand side
Delays
Jacobians of user-provided functions
Definition of structure funcs
Save and continue to continuation and stability of steady states demo1_stst.html
Right-hand side
A function defining the right-hand side :
function y=sys_rhs(xx,par)
This function has two arguments, xx , which contains the state variable(s) at the present and in the past, xx
, par which contains the parameters, par .
neuron_sys_rhs=@(xx,par)[...
-par(1)*xx(1,1)+par(2)*tanh(xx(1,4))+par(3)*tanh(xx(2,3));....
-par(1)*xx(2,1)+par(2)*tanh(xx(2,4))+par(4)*tanh(xx(1,2))];
Delays
The delays , are considered to be part of the parameters ( , ). This is natural since the stability
of steady solutions and the position and stability of periodic solutions depend on the values of the delays. Furthermore delays can
occur both as a 'physical' parameter and as delay, as in . From these inputs the right-hand side is evaluated at time
. For equations with constant delays DDE-Biftool determines which parameters are delays by calling an argument-less function of
the type
function d=sys_tau()
In the example we order the parameters as par . Thus, (giving it the name neuron_tau):
neuron_tau=@()[5,6,7];
ind_a21=4; % used later for continuation
ind_taus=7; % used later for continuation
providing the partial derivatives of first and second order (see file neuron_sys_deri.html for details).
'sys_rhs' (default sys_rhs if file sys_rhs.m present in folder): right-hand side sys_tau
'sys_tau' (default @()[]): function defining delays
'sys_deri' (default @df_deriv): function defining partial derivatives of sys_rhs
'sys_ntau' (default 0, only needed for state-dependent delays) number of delays
'sys_cond' (default @dummy_cond) function providing extra conditions
'sys_dtau' (default @df_derit, only needed for state-dependent delays): function defining partial derivatives of sys_tau
'x_vectorized' (logical, default false) set to true if sys_rhs, sys_deri, (sys_tau and sys_dtau for SD-DDEs) accept an
argument xx with three dimensions. For periodic-orbit computations the function will be called with all collocation points
simultaneously if x_vectorized is true.
Other fields are tp_del (true if delays are state-dependent), sys_deri_provided (true if user has provided sys_deri) and
sys_dtau_provided (true if user has provided sys_dtau).
funcs=set_funcs(...
'sys_rhs',neuron_sys_rhs,...
'sys_tau',@()[5,6,7],...
'sys_deri',@neuron_sys_deri) %#ok<NOPTS>
funcs =
sys_rhs: [function_handle]
sys_ntau: @()0
sys_tau: @()[5,6,7]
sys_cond: @dummy_cond
sys_deri: @neuron_sys_deri
sys_dtau: @(it,x,p,nx,np)df_derit(funcs,it,x,p,nx,np)
sys_mfderi: [function_handle]
x_vectorized: 0
tp_del: 0
sys_deri_provided: 1
sys_dtau_provided: 0
sys_mfderi_provided: 0
save('demo1_funcs_results.mat');
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_funcs.html 2/3
7/25/2017 Definition of user functions
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_funcs.html 3/3
7/25/2017 Continuation and stability of steady states (equilibria)
Once the user-defined functions are prepared, DDE-Biftool can compute and continue equilibria of the DDE, and compute their
linearized stability, thus detecting local bifurcations. This demo requires demo1_funcs.html to have run beforehand.
Contents
Initial guess for steady state
Linear stability of initial equilibrium
Ask for roots with more negative real part
Figures: Spectrum of equilibrium
Initialize branch of trivial equilibria
Extend and continue branch of trivial equilibria
Stability of branch of equilibria
Figures: Stability of equilibria
Save and continue with Hopf bifurcations: demo1_hopf.html
%#ok<*ASGLU,*NOPTS,*NASGU>
%
It is clear that the neuron DDE has a steady state solution for all values of the parameters. We define a first
steady state solution using the parameter values , , , , and . Remember
that we chose par .
stst.kind='stst';
stst.parameter=[1/2, -1, 1, 2.34, 0.2, 0.2, 1.5];
stst.x=[0;0]
stst =
kind: 'stst'
parameter: [0.5 -1 1 2.34 0.2 0.2 1.5]
x: [2x1 double]
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_stst.html 1/7
7/25/2017 Continuation and stability of steady states (equilibria)
figure(1); clf;
p_splot(stst); % plot its stability:
method =
continuation: [1x1 struct]
bifurcation: [1x1 struct]
point: [1x1 struct]
stability: [1x1 struct]
stst =
kind: 'stst'
parameter: [0.5 -1 1 2.34 0.2 0.2 1.5]
x: [2x1 double]
success =
1
stst =
kind: 'stst'
parameter: [0.5 -1 1 2.34 0.2 0.2 1.5]
x: [2x1 double]
stability: [1x1 struct]
method.stability.minimal_real_part=-2;
stst.stability=p_stabil(funcs,stst,method.stability); % recompute stability:
figure(2); clf;
p_splot(stst); % replot stability
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_stst.html 2/7
7/25/2017 Continuation and stability of steady states (equilibria)
branch1 =
method: [1x1 struct]
parameter: [1x1 struct]
point: []
ans =
free: 4
min_bound: [3x2 double]
max_bound: []
max_step: []
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_stst.html 3/7
7/25/2017 Continuation and stability of steady states (equilibria)
ans =
5 0
6 0
7 0
stst.parameter(ind_a21)=stst.parameter(ind_a21)+0.1;
[stst,success]=p_correc(funcs,stst,[],[],method.point)
% use as a second branch point:
branch1.point(2)=stst;
branch1.method.continuation.plot=0;
stst =
kind: 'stst'
parameter: [0.5 -1 1 2.44 0.2 0.2 1.5]
x: [2x1 double]
stability: []
success =
1
BR_CONTN warning: boundary hit.
branch1 =
method: [1x1 struct]
parameter: [1x1 struct]
point: [1x16 struct]
s =
15
f =
0
r =
0
BR_CONTN warning: boundary hit.
branch1 =
...
After obtaining suitable measure structures we plot the real part of the approximated and corrected roots of the characteristic
equation along the branch, (see figure). Notice the strange behaviour (coinciding of several complex pairs of roots) at . At
this parameter value one of the couplings between the neurons is broken. In fact, for , the evolution of the second
component is independent of the evolution of the first.
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_stst.html 4/7
7/25/2017 Continuation and stability of steady states (equilibria)
branch1.method.stability.minimal_real_part=-2;
branch1=br_stabl(funcs,branch1,0,0);
xm =
field: 'parameter'
subfield: ''
row: 1
col: 4
func: ''
ym =
field: 'stability'
subfield: 'l1'
row: 'all'
col: 1
func: 'real'
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_stst.html 5/7
7/25/2017 Continuation and stability of steady states (equilibria)
Real parts of the approximated (top) and corrected (top,bottom) roots of the characteristic equation versus (top) respectively the
point number along the branch (bottom).
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_stst.html 6/7
7/25/2017 Continuation and stability of steady states (equilibria)
save('demo1_stst_results.mat');
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_stst.html 7/7
7/25/2017 Hopf bifurcation
Hopf bifurcation
The eigenvalues of the linearized system along branches of equilibria indicate potential bifurcations. In this demo complex
conjugate pairs of eigenvalues cross the imaginary axis, corresponding to Hopf bifurcations. The demo will proceed to continue two
of these Hopf bifurcations in two system parameters and . This part requires to run demo1_stst.html first
Contents
Locating the first Hopf point
Figure: eigenvalues at Hopf point
Initialize and continue first Hopf bifurcation
Figure: Continuation (predictions and corrections) of Hopf bifurcation
Hopf continuation and detecton of Takens-Bogdanov point
Figures: Stability and frequency along first Hopf bifurcation
Comments
Switch to second Hopf bifurcation at double Hopf bifurcation
Changing the Newton iteration and correction with other system parameter
Continuation of second Hopf bifurcation
Figure: Continuation (predictions and corrections) of both Hopf bifurcations
Save and continue
%#ok<*ASGLU,*NOPTS,*NASGU>
%
ind_hopf=find(arrayfun(@(x)real(x.stability.l0(1))>0,branch1.point),1,'last');
hopf=p_tohopf(funcs,branch1.point(ind_hopf));
method=df_mthod(funcs,'hopf',flag_newhheur); % get hopf calculation method parameters:
method.stability.minimal_real_part=-1;
[hopf,success]=p_correc(funcs,hopf,ind_a21,[],method.point) % correct hopf
first_hopf=hopf; % store hopf point in other variable for later use
hopf.stability=p_stabil(funcs,hopf,method.stability); % compute stability of hopf point
figure(5); clf;
p_splot(hopf); % plot stability of hopf point
hopf =
kind: 'hopf'
parameter: [0.5 -1 1 0.807123224967979 0.2 0.2 1.5]
x: [2x1 double]
v: [2x1 double]
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 1/8
7/25/2017 Hopf bifurcation
omega: 0.78196516212093
success =
1
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 2/8
7/25/2017 Hopf bifurcation
branch2=br_stabl(funcs,branch2,0,0);
figure(7); clf;
[xm,ym]=df_measr(1,branch2); % plot stability versus point number:
ym.subfield='l0';
br_plot(branch2,[],ym,'c');
ym.subfield='l1';
br_plot(branch2,[],ym,'b');
xlabel('point number along branch');ylabel('\Re(\lambda)');
% plot omega to identify 'false' turning point
% as Bogdanov-Takens point:
figure(8); clf;
[xm,ym]=df_measr(0,branch2);
ym
ym.field='omega';
ym.col=1;
xm
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 3/8
7/25/2017 Hopf bifurcation
xm.col=7;
br_plot(branch2,xm,ym,'c');
grid on;
xlabel('tau_s');ylabel('Hopf frequency \omega');
ym =
field: 'parameter'
subfield: ''
row: 1
col: 7
func: ''
xm =
field: 'parameter'
subfield: ''
row: 1
col: 4
func: ''
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 4/8
7/25/2017 Hopf bifurcation
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 5/8
7/25/2017 Hopf bifurcation
Comments
If, during these computations we would have obtained warnings of the kind, TIME_H warning: h_min is reached, it would
indicate that the time integration step required to obtain good approximations to the requested rightmost characteristic roots is too
small. By default, characteristic roots are computed up to . We also notice a double Hopf point on the left but nothing
special at the right end, which could explain the observed turning of the branch. Plotting the frequency versus reveals what has
happened, see figure. For small , goes through zero, indicating the presence of a Bogdanov-Takens point. The subsequent
turning is a recomputation of the same branch with negative frequencies.
ind_hopf2=find(arrayfun(...
@(x)numel(x.stability.l0)>=5&&real(x.stability.l0(5))<-1e-4,branch2.point),...
1,'first');
hopf2=p_tohopf(funcs,branch2.point(ind_hopf2));
method.point.print_residual_info=1;
[hopf,success]=p_correc(funcs,hopf2,ind_a21,[],method.point) %fails
it=1, res=0.00834454
it=2, res=0.460349
it=3, res=0.0546203
it=4, res=0.00153245
it=5, res=1.96637e-05
hopf =
kind: 'hopf'
parameter: [0.5 -1 1 -0.0103306962446629 0.2 0.2 8.55313930216643]
x: [2x1 double]
v: [2x1 double]
omega: 0.976827672655547
success =
0
Changing the Newton iteration and correction with other system parameter
However, the correction fails. Printing residual information gives a list of the Newton iteration number and the norm of the residual.
This reveals at least temporarily divergence of the correction process. Or we did not allow enough Newton iterations, or the free
parameter is not so appropriate. We successfully try again using as a free parameter.
it=1, res=0.00834454
it=2, res=0.000618872
it=3, res=2.10605e-07
it=4, res=3.91466e-13
hopf =
kind: 'hopf'
parameter: [0.5 -1 1 0.206568018737126 0.2 0.2 8.63403521750747]
x: [2x1 double]
v: [2x1 double]
omega: 0.915807193195807
success =
1
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 6/8
7/25/2017 Hopf bifurcation
branch3=df_brnch(funcs,[ind_a21,ind_taus],'hopf');
branch3.parameter=branch2.parameter;
branch3.point=hopf;
% perturb and correct:
hopf.parameter(ind_a21)=hopf.parameter(ind_a21)-0.05;
method.point.print_residual_info=0;
format short;
[hopf,success]=p_correc(funcs,hopf,ind_taus,[],method.point);
branch3.point(2)=hopf; % use as second branch point:
% continue branch of hopf points on two sides:
branch3.method.continuation.plot_progress=0;
figure(6);
[branch3,s,f,r]=br_contn(funcs,branch3,100);
% reverse branch
branch3=br_rvers(branch3);
[branch3,s,f,r]=br_contn(funcs,branch3,100);
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 7/8
7/25/2017 Hopf bifurcation
save('demo1_hopf_results.mat');
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_hopf.html 8/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
Warning Automatic bifurcation detection along branches is still in development. Its interface is likely to change, and detection is not
yet reliable. With br_bifdet, normal form computations do not return error estimates. Thus, they should only be used with user-
provided sys_mfderi for higher-order derivatives (in contrast to the default finite-difference approximation mf_deriv). See
demo1_simple.html for an illustration, how one can perform a subset of the br_bifdet functionality with finite-difference
approximations and error estimates.
Contents
Load folder with normal form tools into matlab path
Higher-order derivatives provided by user
Automatic detection of codimension 2 bifurcations and criticality
Check Criticality
Special points
Perform bifurcation detection along second Hopf branch
Plot of Lyapunov coefficients for both Hopf branches
Special points along branch3
Save and continue with periodic orbit continuation: demo1_psol.html
%#ok<*ASGLU,*NOPTS,*NASGU>
%
addpath('../../ddebiftool_extra_nmfm/');
function y=sys_mfderi(xx,par,v1,v2,...)
where y=D^m_1f(xx,p)[v1,v2,...]. The inputs xx, v1, v2 are n x (ntau+1) arrays, par the system parameters. The output is the
directional derivative of order m, where m is the the number of arguments vk (k=1..m).
For this example, an explicit function for sys_mfderi is given, so we use it by adding the function to the function structure:
afuncs=set_funcs(funcs,'sys_mfderi',@sys_mfderi)
afuncs =
sys_rhs: [function_handle]
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 1/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
sys_ntau: @()0
sys_tau: @()[5,6,7]
sys_cond: @dummy_cond
sys_deri: @neuron_sys_deri
sys_dtau: @(it,x,p,nx,np)df_derit(funcs,it,x,p,nx,np)
sys_mfderi: @sys_mfderi
x_vectorized: 0
tp_del: 0
sys_deri_provided: 1
sys_dtau_provided: 0
sys_mfderi_provided: 1
The output branch_nmfm has a point array of structures that contain additional fields 'nmfm', 'nvec', 'flag'. The field 'flag'
may have the values
The field 'nmfm' is a structure. If the branch was a Hopf curve, it contains the field
'L1': the first (3rd-order) Lyapunov coefficient at the Hopf point (L1<0 implies that the Hopf bifurcation is supercritical, L1>0
implies that the Hopf bifuration is subcritical).
for special points it contains other normal form coefficients, determining the sub-case of the bifurcation. See Kuznetsov (2004)
'Elements of Applied Bifurcation Theory') for notation and definitions.
branch2_nmfm=br_bifdet(afuncs,branch2);
Check Criticality
The Lyapunov coefficients are always negative along the branch, implying that the bifurcation is supercritical.
L1_br2=arrayfun(@(x)x.nmfm.L1,branch2_nmfm.point);
taus_br2=arrayfun(@(x)x.parameter(ind_taus),branch2_nmfm.point);
a21_br2=arrayfun(@(x)x.parameter(ind_a21),branch2_nmfm.point);
figure(17);
subplot(2,1,1);
plot(taus_br2,a21_br2,'.-');
grid on
xlabel('\tau_s');
ylabel('a_{21}');
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 2/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
title('(Repeated) two-parameter Hopf curve branch2');
subplot(2,1,2);
plot(taus_br2,L1_br2,'.-');
set(gca,'ylim',[-1,0]);
grid on
xlabel('\tau_s');
ylabel('L1');
title('First Lyapunov coefficient along branch2');
Special points
The detection routine br_bifdet finds special points, listed by br_getflags. Each row index corresponds to a type of point.
Indices can be converted to point types (strings) with num2bif.
The call to br_getflags shows that br_bifdet has found two Hopf-Hopf points. Double-checking the data in the 'nmfm' field
shows that one of them is genuine, the other is spurious (a non-semisimple Hopf eigenvalue when a21=0). A typical feature of
DDEs is that apparently higher-codimension degeneracies can occur due to the finite number of delays and equations.
The points at which the Lyapunov coefficient L1 becomes singular (infinity) are special points: one of them is the non-semisimple
Hopf eigenvalue point, the other is the Takens-Bogdanov point (where the Hopf frequency omega passes through 0). At the moment
br_bifdet cannot detect Takens-Bogdanov points safely.
special_br2_alltypes=br_getflags(branch2_nmfm)
knowntypes=num2bif();
biftype=num2bif(find(any(br_getflags(branch2_nmfm)>0,2)))
special_br2=special_br2_alltypes(bif2num(biftype),:)
for i=1:length(special_br2);
fprintf('\nPoint %d normal form parameters:\n',special_br2(i));
disp(branch2_nmfm.point(special_br2(i)).nmfm);
fprintf('\nPoint %d Eigenvalues:\n',special_br2(i));
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 3/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
disp(branch2_nmfm.point(special_br2(i)).stability.l0);
end
special_br2_alltypes =
0 0
0 0
0 0
0 0
0 0
4 19
known point types:
type 0: stst
type 1: hopf
type 2: fold
type 3: psol
type 4: hcli
type 5: genh
type 6: hoho
type 7: zeho
biftype =
hoho
special_br2 =
4 19
Point 4 Eigenvalues:
0.1284 - 0.2509i
0.1284 + 0.2509i
0.0000 - 0.9157i
0.0000 + 0.9157i
-0.0000 - 0.3287i
-0.0000 + 0.3287i
-0.0298 - 1.0012i
-0.0298 + 1.0012i
-0.0662 - 1.6968i
-0.0662 + 1.6968i
-0.0671 - 1.6371i
-0.0671 + 1.6371i
-0.0982 - 2.4063i
-0.0982 + 2.4063i
-0.1095 - 2.3640i
-0.1095 + 2.3640i
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 4/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
Point 19 Eigenvalues:
0.0000 - 0.8660i
0.0000 + 0.8660i
0.0000 - 0.8660i
0.0000 + 0.8660i
branch3_nmfm=br_bifdet(afuncs,branch3);
L1_br3=arrayfun(@(x)x.nmfm.L1,branch3_nmfm.point);
a21_br3=arrayfun(@(x)x.parameter(ind_a21),branch3_nmfm.point);
taus_br3=arrayfun(@(x)x.parameter(ind_taus),branch3_nmfm.point);
figure(18);
subplot(2,2,1);
plot(a21_br2,taus_br2,'.-',a21_br3,taus_br3,'.-');
a21lim=get(gca,'xlim');
tauslim=get(gca,'ylim');
grid on
xlabel('a_{21}');
ylabel('\tau_s');
title('(Repeated) two-parameter Hopf curves');
subplot(2,2,2);
plot(L1_br2,taus_br2,'.-');
set(gca,'ylim',tauslim,'xlim',[-0.6,0]);
grid on
ylabel('\tau_s');
xlabel('L1');
title('First Lyapunov coefficient along branch2');
subplot(2,2,3);
plot(a21_br3,L1_br3,'.-','color',[0,0.5,0]);
set(gca,'ylim',[-0.1,0],'xlim',a21lim);
grid on
xlabel('a_{21}');
ylabel('L1');
title('First Lyapunov coefficient along branch3');
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 5/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
special_br3_alltypes=br_getflags(branch3_nmfm)
biftype=num2bif(find(any(br_getflags(branch3_nmfm)>0,2)))
special_br3=special_br3_alltypes(bif2num(biftype),:)
for i=1:length(special_br3)
fprintf('\nPoint %d normal form parameters:\n',special_br3(i));
disp(branch3_nmfm.point(special_br3(i)).nmfm);
fprintf('\nPoint %d Eigenvalues:\n',special_br3(i));
disp(branch3_nmfm.point(special_br3(i)).stability.l0);
end
special_br3_alltypes =
0 0
0 0
0 0
0 0
0 0
3 12
biftype =
hoho
special_br3 =
3 12
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 6/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
g1110: -1.1309e+04 - 9.6271e+02i
g0021: -5.6547e+03 - 4.8135e+02i
theta: 2.0000
delta: 2.0000
Point 3 Eigenvalues:
0.0501 - 0.2766i
0.0501 + 0.2766i
0.0501 - 0.2766i
0.0501 + 0.2766i
0.0000 - 0.8660i
0.0000 + 0.8660i
0.0000 - 0.8660i
0.0000 + 0.8660i
-0.0459 - 1.4920i
-0.0459 + 1.4920i
-0.0459 - 1.4920i
-0.0459 + 1.4920i
-0.0801 - 2.1310i
-0.0801 + 2.1310i
-0.0801 - 2.1310i
-0.0801 + 2.1310i
Point 12 Eigenvalues:
0.1284 - 0.2509i
0.1284 + 0.2509i
0.0000 - 0.9157i
0.0000 + 0.9157i
0.0000 - 0.3287i
0.0000 + 0.3287i
-0.0298 - 1.0012i
-0.0298 + 1.0012i
-0.0662 - 1.6968i
-0.0662 + 1.6968i
-0.0671 - 1.6371i
-0.0671 + 1.6371i
-0.0982 - 2.4063i
-0.0982 + 2.4063i
-0.1095 - 2.3640i
-0.1095 + 2.3640i
save('demo1_normalforms_results.mat');
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 7/8
7/25/2017 Normal form calculations along Hopf bifurcation curves
http://ddebiftool.sourceforge.net/demos/neuron/html/demo1_normalforms.html 8/8