Duffing系统
Duffing.m
function dx=Duffing(t,x);
% Duffing方程
% dx=Duffing(t,[x;y])
% t-时间,x,y-为自变量
% eg: dx=Duffing(10,[0;0;39])
%
% 方程如下:
% dx=y
% dy=-r*y-x^3+b*cos(t)
% r=0.3 b=39
%
% Example(Duffing图象):
% [T,Y]=ode45('Duffing',50,[0;0;39]);
% plot(Y(:,1),Y(:,2));
%
% Example(分岔图):
%
% Z=[];
% for p=linspace(6,13,280);
% [T,Y]=ode45('Duffing',10,[3;0;p]);
% [T,Y]=ode45('Duffing',100,Y(end,:));
% for k=2:length(Y)
% f=k-1;
% y=1;
% if Y(k,1)<0
% if Y(f,1)>0
% y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));
% end
% else
% if Y(f,1)<0
% y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));
% end
% end
% if y<0
% Z=[Z p+y*i];
% end
% end
% end
% plot(Z,'.','markersize',2)
% title('Duffing映射分岔图(x=0,dx<0)'),xlabel('b'),ylabel('y')
%
% Author's email: ustb03-07@yahoo.com.cn
%
r=0.3;
b=x(3);
dx(1,1)=x(2);
dx(2,1)=-r*x(2)-x(1)^3+b*cos(t);
dx(3,1)=0;
No comments:
Post a Comment