Branch off at period doubling (branch psolbranch, point number ind)
Contents
function [per2,suc]=DoublePsol(funcs,psolbranch,ind,varargin)
Inputs
- funcs: structure with functions provided by user
- psolbranch: branch of 'psol' periodic orbits from which one wants to branch off
- ind: index in 'point' field of psolbranch which is close to period doubling where we want to branch off
Important optional inputs (name-value pairs)
- 'radius': initial deviation along period-doubling eigenvector
All other name-value pairs are passed on to output branch.
Outputs
- per: branch of periodic orbits with desired settings, double period, and two initial corrected points
- suc: flag indicating success
(c) DDE-BIFTOOL v. 3.1.1(20), 11/04/2014
default={'radius',0.01};
[options,pass_on]=dde_set_options(default,varargin,'pass_on');
% create branch per2 of periodic solutions starting from an
% approximate period doubling num on a branch br of periodic orbits
point=psolbranch.point(ind);
intervals=(size(point.profile,2)-1)/point.degree;
[deg_psol1,step_cond1]=p_topsol(funcs,point,options.radius,...
[],intervals);
[deg_psol2,step_cond2]=p_topsol(funcs,point,options.radius*2,...
[],intervals);
per2=replace_branch_pars(psolbranch,[],pass_on);
[psol1,suc]=p_correc(funcs,deg_psol1,per2.parameter.free,step_cond1,...
per2.method.point,1,deg_psol1);
if suc==0
per2=[];
return
end
[psol2,suc]=p_correc(funcs,deg_psol2,per2.parameter.free,step_cond2,...
per2.method.point,1,deg_psol2);
if suc==0
per2=[];
return
end
per2.point=psol1;
per2.point(2)=psol2;
end