是不是logistic模型分叉图
方法一:
- clear;
- clf;
- u=2.6:0.001:4.0;
- x=0.1;
- for i=1:300
- x=u.*(x-x.^2);
- end
- for j=1:80
- x=u.*(x-x.^2);
- plot(u,x,'k.','markersize',2)
- hold on;
- end
- grid on;
复制代码
方法二:
- clear;
- niter=2500;
- hold on;
- for alpha=1:0.005:4
- y(1)=rand(1);
- x(1)=alpha;
- for j=1:niter
- y(j+1)=alpha*y(j)*(1-y(j));
- x(j+1)=alpha;
- end
- h=plot(x(200:niter+1),y(200:niter+1),'k.');
- set(h,{'MarkerSize'},{0.5});
- end
- xlabel('--alpha-->');
- title('Bifurcation Diagram of Logistic Map');
复制代码
方法三:
- function rep = itera(x)
- % calcul de la fonction logistique
- global lamb % lamb est en commun avec le premier prog.
- rep = lamb.*x.*(1-x);
- % Dessine l'arbre de Feigenbaum,
- %c.a.d. l'arbre de bifurcation ddes iterations
- % de l'application logistiquefigure(1); % choisit une fenetre
- clf;hold on; % nettoie l'ecran, fixe les le cadre
- % entre deux affichages pour une surimpression
- a=1;b=4; % le ";" evite l'affichage du resultat
- axis([a,b,0,1]); % [xmin,xmax,ymin,ymax] est un vecteur qui
- % defini le cadre
- global lamb; % met une variable en commun
- N=500;
- for i = 1:N, % noter la virgule
- x = 0.71;
- lamb=a+i/N*(b-a);
- Y = [ ]; % initialise un vecteur (vide)
- for j = 1:200,
- x = itera(x); % itera est une fonction utilisateur
- Y = [Y,x]; % ajoute une composante x au vecteur Y
- end; % fin du for j
- Y=Y(100:200); % extrait les composantes de 100 a 200
- plot(ones(size(Y))*lamb,Y,'r.');
- if rem(i,10)==0, drawnow; end;
- % affiche le dessin toutes les 10 it\'erations
- % (rem = remainder = reste de la division
- % de i par 10)
- end;
复制代码
方法四:
- r=linspace(2,4,500);
- initial=linspace(0.3,0.7,50);
- trans=200;
- k=1;
- while k<50
- i=1;
- while i<=500
- x(1)=initial(k);
- j=1;
- while j<=(trans-1)
- x(j+1)=r(i)*x(j)*(1-x(j));
- j=j+1;
- end
- a(i)=x(trans);
- b(i)=x(trans-1);
- c(i)=x(trans-2);
- d(i)=x(trans-3);
- i=i+1;
- end
- plot(r,a,'.','Color','red');hold on;
- %set(findobj(gca,'Type','line'),'Color','red');
- plot(r,b,'.','Color','blue');hold on;
- %set(findobj(gca,'Type','line'),'Color','blue');
- plot(r,c,'.','Color','yellow');hold on;
- plot(r,d,'.','Color','green');
- k=k+1;
- end
复制代码
|