sihaiwuya 发表于 2005-11-17 15:08

求Feigenbaum图源程序

那位高手帮一下忙,这是混沌动力学的的一个分岔图,求matlab的源程序。不胜感激,刚学matlab,还望高人指点。

[ 本帖最后由 lxq 于 2006-12-15 14:20 编辑 ]

MVH 发表于 2005-11-17 17:15

是不是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(); % 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 = ; % 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

sihaiwuya 发表于 2005-11-18 23:56

谢谢了!

xsj3917 发表于 2006-10-18 14:21

非常感激

zhlong 发表于 2006-12-15 11:21

非常感谢

zhangyandlut 发表于 2007-5-15 16:21

真是感激呀!!!
页: [1]
查看完整版本: 求Feigenbaum图源程序