% |x-b when x>b
% y= | x when -b<x<b
% |x+b when x<-b
clc;
b=1;
ff=inline('[y(2);-(y(1)>b)*(y(1)-b)-(y(1)<-b)*(y(1)+b)-(-b<y(1)&y(1)<b)*y(1)]',...
'x','y','flag','b');
[t,y]=ode45(ff,[0,40],[2,0],[],b);
close all;
subplot(131);plot(t,y(:,1),'k',t,y(:,2),'k:','markersize',2);
subplot(132);plot(y(:,1),y(:,2),'k');title('相图');xx=xlim;
q=find(abs(y(:,1))<1e-1);
subplot(133);plot(y(q,1),y(q,2),'k.','markersize',6);xlim(xx);
title('庞克来相图')
set(gcf,'Position',[16 135 995 327])
此程序转自一个论坛,具体是哪个我不知道了,感谢原创者,发在这里对楼主应该有帮助。,还有你的短信我也看到了 |