庞加莱截面图matlab程序

function ydot = zjzdfun(t,y,flag,u,x0,w0,v,w)
ydot = [ y(2);
u*(x02-y(1)2)y(2)-y(1)w0^2-vcos(wt)
];
end

%求解庞加莱截面
u = [0.85 1.02 0.66 1.08];
x0 =1; w0 = 1; v = 1; w = 0.44;
T = 2pi/w;
str{1}=‘庞加莱截面-周期1吸引子’;
str{2}=‘庞加莱截面-周期2吸引子’;
str{3}=‘庞加莱截面-不变环面吸引子’;
str{4}=‘庞加莱截面-奇怪吸引子’;
for j = 1:4;
[t,y]=ode45(‘zjzdfun’,0:T/1000:50
T,[4,4],[],u(j),x0,w0,v,w);
figure
subplot(2,1,1)
plot(t,y(:,1));
title(‘位移曲线’);
xlabel(‘x’);ylabel(‘v’);

subplot(2,2,3)
plot(y(3000:end,1),y(3000:end,2));
axis([-3 3 -4 4])
xlabel('x');ylabel('v');
title('相图');

subplot(2,2,4)
axis([-3 1 -1 1])
hold on 
for i = 7000:1000:14000
    plot(y(i,1),y(i,2),'r');
end
title(str{j});

end

猜你喜欢

转载自blog.csdn.net/qq_41621140/article/details/113865866