⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mult_app.m

📁 这是国外用的研究分岔的完整的M程序
💻 M
字号:
function mu=mult_app(period,profile,mesh,degree,rho,max_number,col,par,d_ac)% function mu=mult_app(period,profile,mesh,degree,rho,max_number,col,par,d_ac)% INPUT: %	period period of solution%	profile periodic solution profile%       mesh periodic solution mesh (if empty, mesh is assumed uniform)%	degree degree of piecewise polynomials%       rho keep multipliers with modulus >= rho%	max_number keep at most max_number multipliers %	col collocation points%       par current parameter values in R^p%       d_ac (only for state-dependent delays) tau<d_ac is treated as %             tau<0 (stability is not computed)% OUTPUT:%       mu approximations of dominant multipliers% (c) DDE-BIFTOOL v. 2.00, 30/11/2001% if mesh is empty assume equidistant mesh:if isempty(mesh)  mesh=0:1/(size(profile,2)-1):1;end;m=degree;tp_del=nargin('sys_tau');if tp_del==0  tau=par(sys_tau);  d=length(tau);else  d=sys_ntau;  tot_tau=[];end;if d>0  if tp_del==0     tT=max(tau)/period;  else    % compute max(tau)    for t_m=1:length(mesh)      x=profile(:,t_m);      xx=x;      for j=1:d        tau=sys_tau(j,xx,par);        tot_tau=[tot_tau tau];        tau=tau/period;        t_tau=mesh(t_m)-tau;        while t_tau<0,          t_tau=t_tau+1;        end;        index_b=length(mesh)-m;        while (t_tau<mesh(index_b))          index_b=index_b-m;        end;        hhh_tau=mesh(index_b+m)-mesh(index_b);        t_tau_trans=(t_tau-mesh(index_b))/hhh_tau;        Pb=poly_elg(m,t_tau_trans);        x_tau=profile(:,index_b:index_b+m)*Pb';        xx=[xx x_tau];      end;    end;    tT=max(tot_tau)/period;  end;  k=floor(tT);   for l=length(mesh):-m:1    if mesh(l)<k+1-tT      break;    end;  end;  ext_mesh=mesh(l:length(mesh))-k-1;  for l=k:-1:0    ll=length(ext_mesh);    ext_mesh(ll:ll-1+length(mesh))=mesh-l;  end;else  ext_mesh=mesh;end;if tp_del==0  M=mult_int(period,profile,mesh,m,ext_mesh,col,par);else  M=mult_int(period,profile,mesh,m,ext_mesh,col,par,d_ac);end;if isempty(M)  mu=[];  return;end;s=eig(M);[dummy,I]=sort(abs(s));mu=s(I(length(I):-1:max(1,length(I)-max_number+1)));for i=length(mu):-1:1  if abs(mu(i))>=rho    break;  end;end;mu=mu(1:i);return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -