我画分支图常常先差分,然后运行很长时间取最后的几百步就可以了,例如以下
clear;
T=1000;dt=0.05;a1=5.0;a2=0.1;b2=2.0;d1=0.4;d2=0.01;e=1.0;r=0;
X=zeros(1,T);Y=zeros(1,T);Z=zeros(1,T);
X(1)=0.4;Y(1)=0.6;Z(1)=5;
hold on
for b1=2:0.02:9
for t=2:T
X(t)=X(t-1)+(X(t-1)*(1-X(t-1))-a1*X(t-1)*Y(t-1)/(1+b1*X(t-1)))*dt;
Y(t)=Y(t-1)+(a1*X(t-1)*Y(t-1)/(1+b1*X(t-1))-a2*Y(t-1)^(e)*Z(t-1)/(1+b2*Y(t-1)^(e)+r*Z(t-1))-d1*Y(t-1))*dt;
Z(t)=Z(t-1)+(a2*Y(t-1)^(e)*Z(t-1)/(1+b2*Y(t-1)^(e)+r*Z(t-1))-d2*Z(t-1))*dt;
end
plot(b1,Z(T-500:T),'k.','MarkerSize',4)
end
但这样做的结果是周期和混沌无法分辨,有人用极值命令做,好像可以解决这方面的问题。
请教一下高手,帮我把上面程序‘plot(b1,Z(T-500:T),'k.','MarkerSize',4) ’这部分用极大值命令代替一下,万分感谢! |