|
楼主 |
发表于 2011-4-30 21:21
|
显示全部楼层
function dx=lorze1(t,X)
x=X(1);
y=X(2);
z=X(3);
a=10;
b=8/3;
global c;
dx=zeros(3,1);
dx(1)=-a*(x-y);
dx(2)=-x*z+c*x-y;
dx(3)=-b*z+x*y;
clear;
global c;
range=[0:0.1:30];
k=0;
YY=[];
for c=range
c
y0=[0.05;0.05;0.05]
%rand(1,3);
k=k+1;
tspan=[0:0.1:50];
[t,Y]=ode45('lorze1',tspan,y0);
count=find(t>0);
Y=Y(count,:);
% 画x的分岔图。
j=1;
n=length(Y(:,1));
for i=2:n-1
if Y(i-1,1)+eps<Y(i,1) && Y(i,1)>Y(i+1,1)+eps
% 简单的取出局部最大值。
YY(k,j)=Y(i,1);
j=j+1;
end
end
if j>1
plot(c,YY(k,[1:j-1]),'k.','markersize',1);
end
hold on;
index(k)=j-1;
end
xlabel('r');
ylabel('x max');
|
|