###
Example

In this section we discuss a non-generic situation, i.e. a case with a symmetry and a continuation of BPC points that involves two effective parameters and one artificial parameter.

For this example the following model is used:

| (87)

which is the same system as in the torus of cycles continuation. It has a trivial solution branch for all parameter values. Moreover, it has the - symmetry , . To compute the branch of BPC points with respect to through the BPC point that we will detect on a limitcycle continued with free parameters , we need to introduce an additional free parameter that breaks the symmetry. There are many choices for this; we choose to introduce a parameter and extend the system (87) by simply adding a term to the first right-hand-side. For this reduces to (87) while for the symmetry is broken.

We start by computing the trivial branch with fixed parameters , , , , , and free parameter with initially . On this branch a Hopf point is detected for and a branch point of equilibria for .

    >> p=[0.5;-0.6;0.6;0.32858;0.93358;-0.9;0];
    >> [x0,v0]=init_EP_EP(@torBPC,[0;0;0],p,[6]);
    >> opt=contset; opt= contset(opt,'Singularities',1);
    >> opt=contset(opt,'MaxNumPoints',50);
    >> [x,v,s,h,f]=cont(@equilibrium,x0,[],opt);
    first point found
    tangent vector to first point found
    label = H , x = ( 0.000000 0.000000 0.000000 -0.589336 )
    First Lyapunov coefficient = -4.563631e-001
    label = BP, x = ( 0.000000 0.000000 0.000000 -0.500000 )

    elapsed time  = 0.3 secs
    npoints curve = 50

These computations can be done by running the script `t`esttorBPC4.

From the Hopf point we start the computation of a curve of limit cycles, using 25 test intervals and 4 collocation points. This is clearly a branch of symmetric solutions of (87); we detect one LPC and two BPC, see Fig. 28.

    >> x1=x(1:3,s(2).index);p(6)= x(end,s(2).index);ap = 6;
    >> [x0,v0]=init_H_LC(@torBPC,x1,p,ap,0.0001,25,4);
    >> opt=contset; opt= contset(opt,'Singularities',1);
    >> opt=contset(opt,'Multipliers',1);
    >> opt=contset(opt,'MaxNumPoints',150);
    >> opt=contset(opt,'Adapt',5);
    >> [xlc,vlc,slc,hlc,flc]=cont(@limitcycle,x0,v0,opt);
    first point found
    tangent vector to first point found
    Limit point cycle (period = 8.426472e+000, parameter = -5.843348e-001)
    Normal form coefficient = 1.553595e-001
    Branch Point cycle(period = 8.689669e+000, parameter = -5.870290e-001)
    Neimark-Sacker (period = 8.743033e+000, parameter = -5.881194e-001)
    Neutral saddle

    elapsed time  = 30.2 secs
    npoints curve = 150
    >> plotcycle(xlc,vlc,slc,[1 2]);

These computations can be done by running the script `t`esttorBPC5.

Figure 28: Curve of limit cycles with LPC and branch points in the circuit example.

We continue the secondary cycle branch passing through the BPC point. From Fig. 29 it is clear that in the secondary cycle the symmetry is broken.

    >> [x1,v1]=init_BPC_LC(@torBPC,xlc,vlc,slc(3),25,4,1e-6);
    >> opt=contset(opt,'MaxNumPoints',50);
    >> opt=contset(opt,'Backward',1);
    >> [xlc1,vlc1,slc1,hlc1,flc1]=cont(@limitcycle,x1,v1,opt);
    first point found
    tangent vector to first point found
    Neimark-Sacker (period = 8.794152e+000, parameter = -5.916502e-001)
    Normal form coefficient = -8.661266e-003
    Period Doubling (period = 9.266303e+000, parameter = -6.149552e-001)
    Normal form coefficient = -6.374237e-003

    elapsed time  = 13.6 secs
    npoints curve = 50
    >> plotcycle(xlc1,vlc1,slc1,[1 2]);

These computations can be done by running the script `t`esttorBPC6.

Figure 29: Asymmetric curve of limit cycles in the circuit example.

Using the code for the continuation of generic BPC points with three free parameters we continue the curve of non-generic BPC points, where remains close to zero. The picture in Fig. 30 clearly shows that the symmetry is preserved (the axis labels were added manually).

    >> [x1,v1]=init_BPC_BPC(@torBPC,xlc,slc(3),[1 6 7],25,4,ap);
    >> opt=contset(opt,'MaxNumPoints',200);
    >> [xbpc,vbpc,sbpc,hbpc,fbpc]=cont(@branchpointcycle,x1,v1,opt);
    first point found
    tangent vector to first point found

    elapsed time  = 158.1 secs
    npoints curve = 200
    >> plotcycle(xbpc,vbpc,sbpc,[1 2]);

These computations can be done by running the script `t`esttorBPC7.

Figure 30: Curve of BPC points in the circuit example.