📄 p_axpy.m
字号:
function p=p_axpy(a,x,y)% function p=p_axpy(a,x,y)% INPUT:% a (real) scalar % x first point% y second point % OUTPUT:% p resulting point a*x+y% (c) DDE-BIFTOOL v. 2.00, 23/11/2001if isempty(a) error('P_AXPY: empty scalar!');elseif isempty(x) error('P_AXPY: empty x!');end;p.kind=x.kind;switch x.kind, case 'hcli', if isempty(y) p.parameter=a*x.parameter; p.mesh=x.mesh; p.degree=x.degree; p.profile=a*x.profile; p.period=a*x.period; p.x1=a*x.x1; p.x2=a*x.x2; p.lambda_v=a*x.lambda_v; p.lambda_w=a*x.lambda_w; p.v=a*x.v; p.w=a*x.w; p.alpha=a*x.alpha; p.epsilon=x.epsilon; else p.parameter=a*x.parameter+y.parameter; p.mesh=x.mesh; p.degree=x.degree; if ~isempty(x.mesh) if isempty(y.mesh) ly=size(y.profile,2); p.profile=a*x.profile+hcli_eva(y.profile,0:1/(ly-1):1,x.mesh,y.degree); else p.profile=a*x.profile+hcli_eva(y.profile,y.mesh,x.mesh,y.degree); end; else lx=size(x.profile,2); if ~isempty(y.mesh) p.profile=a*x.profile+hcli_eva(y.profile,y.mesh,0:1/(lx-1):1,y.degree); else ly=size(y.profile,2); if lx~=ly p.profile=a*x.profile+hcli_eva(y.profile,0:1/(ly-1):1,0:1/(lx-1):1,y.degree); else p.profile=a*x.profile+y.profile; end; end; end; p.period=a*x.period+y.period; p.x1=a*x.x1+y.x1; p.x2=a*x.x2+y.x2; p.lambda_v=a*x.lambda_v+y.lambda_v; p.lambda_w=a*x.lambda_w+y.lambda_w; p.v=a*x.v+y.v; p.w=a*x.w+y.w; p.alpha=a*x.alpha+y.alpha; % extra line to normalize alpha's if norm(p.alpha)~=0, p.alpha=p.alpha/norm(p.alpha); end; p.epsilon=x.epsilon; end; case 'psol', if isempty(y) p.parameter=a*x.parameter; p.mesh=x.mesh; p.degree=x.degree; p.profile=a*x.profile; p.period=a*x.period; else p.parameter=a*x.parameter+y.parameter; p.mesh=x.mesh; p.degree=x.degree; if ~isempty(x.mesh) if isempty(y.mesh) ly=size(y.profile,2); p.profile=a*x.profile+psol_eva(y.profile,0:1/(ly-1):1,x.mesh,y.degree); else p.profile=a*x.profile+psol_eva(y.profile,y.mesh,x.mesh,y.degree); end; else lx=size(x.profile,2); if ~isempty(y.mesh) p.profile=a*x.profile+psol_eva(y.profile,y.mesh,0:1/(lx-1):1,y.degree); else ly=size(y.profile,2); if lx~=ly p.profile=a*x.profile+psol_eva(y.profile,0:1/(ly-1):1,0:1/(lx-1):1,y.degree); else p.profile=a*x.profile+y.profile; end; end; end; p.period=a*x.period+y.period; end; case 'hopf', if isempty(y) p.parameter=a*x.parameter; p.x=a*x.x; p.v=a*x.v; p.omega=a*x.omega; else p.parameter=a*x.parameter+y.parameter; p.x=a*x.x+y.x; p.v=a*x.v+y.v; p.omega=a*x.omega+y.omega; end; case 'fold', if isempty(y) p.parameter=a*x.parameter; p.x=a*x.x; p.v=a*x.v; else p.parameter=a*x.parameter+y.parameter; p.x=a*x.x+y.x; p.v=a*x.v+y.v; end; case 'stst', if isempty(y) p.parameter=a*x.parameter; p.x=a*x.x; else p.parameter=a*x.parameter+y.parameter; p.x=a*x.x+y.x; end; otherwise, err=x.kind, error('P_AXPY: point is not recognized!');end;if isfield(x,'stability') p.stability=[];end;return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -