马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
用下边的程序做庞加莱截面,为什么频率为20时候,得出的截面正确,选用频率为35时候就不是一个点了。这是什么原因??
close all
t=0:0.001:5;
sig=5*sin(2*pi*20*t);
y=5*cos(2*pi*20*t);
x=zeros(length(t),3);
x(:,1)=y';x(:,2)=sig';x(:,3)=t';
T=1/20;T0=T*2/3; % 选择截面
kmax=round(max(x(:,3))/T);
X1=zeros(kmax);X2=zeros(kmax);
for k=1:kmax;
d=x(:,3)-(k-1)*T-T0;
[P,K]=sort(abs(d));
x1l=x(K(1),1);
x1r=x(K(2),1);
x2l=x(K(1),2);
x2r=x(K(2),2);
x3l=x(K(1),3);
x3r=x(K(2),3);
if abs(P(1))+abs(P(2))<3e-16;
X1(k)=x1l;
X2(k)=x2l;
else
Q=polyfit([x3l,x3r],[x1l,x1r],1);
X1(k)=polyval(Q,(k-1)*T-T0);
Q=polyfit([x3l,x3r],[x2l,x2r],1);
X2(k)=polyval(Q,(k-1)*T-T0);
end
end
figure;
plot(X1,X2,'.');
grid on
xlabel('x','fontsize',14);
ylabel('dx/dt','fontsize',14); |