声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4289|回复: 5

[综合讨论] 求Feigenbaum图源程序

 关闭 [复制链接]
发表于 2005-11-17 15:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

[ 本帖最后由 lxq 于 2006-12-15 14:20 编辑 ]
回复
分享到:

使用道具 举报

发表于 2005-11-17 17:15 | 显示全部楼层
是不是logistic模型分叉图

方法一:
  1. clear;
  2. clf;
  3. u=2.6:0.001:4.0;
  4. x=0.1;
  5. for i=1:300
  6. x=u.*(x-x.^2);
  7. end
  8. for j=1:80
  9. x=u.*(x-x.^2);
  10. plot(u,x,'k.','markersize',2)
  11. hold on;
  12. end
  13. grid on;
复制代码

方法二:
  1. clear;
  2. niter=2500;
  3. hold on;
  4. for alpha=1:0.005:4
  5. y(1)=rand(1);
  6. x(1)=alpha;
  7. for j=1:niter
  8. y(j+1)=alpha*y(j)*(1-y(j));
  9. x(j+1)=alpha;
  10. end
  11. h=plot(x(200:niter+1),y(200:niter+1),'k.');
  12. set(h,{'MarkerSize'},{0.5});
  13. end
  14. xlabel('--alpha-->');
  15. title('Bifurcation Diagram of Logistic Map');
复制代码

方法三:
  1. function rep = itera(x)
  2. % calcul de la fonction logistique
  3. global lamb % lamb est en commun avec le premier prog.
  4. rep = lamb.*x.*(1-x);
  5. % Dessine l'arbre de Feigenbaum,
  6. %c.a.d. l'arbre de bifurcation ddes iterations
  7. % de l'application logistiquefigure(1); % choisit une fenetre
  8. clf;hold on; % nettoie l'ecran, fixe les le cadre
  9. % entre deux affichages pour une surimpression
  10. a=1;b=4; % le ";" evite l'affichage du resultat
  11. axis([a,b,0,1]); % [xmin,xmax,ymin,ymax] est un vecteur qui
  12. % defini le cadre
  13. global lamb; % met une variable en commun
  14. N=500;
  15. for i = 1:N, % noter la virgule
  16. x = 0.71;
  17. lamb=a+i/N*(b-a);
  18. Y = [ ]; % initialise un vecteur (vide)
  19. for j = 1:200,
  20. x = itera(x); % itera est une fonction utilisateur
  21. Y = [Y,x]; % ajoute une composante x au vecteur Y
  22. end; % fin du for j
  23. Y=Y(100:200); % extrait les composantes de 100 a 200
  24. plot(ones(size(Y))*lamb,Y,'r.');
  25. if rem(i,10)==0, drawnow; end;
  26. % affiche le dessin toutes les 10 it\'erations
  27. % (rem = remainder = reste de la division
  28. % de i par 10)
  29. end;
复制代码

方法四:
  1. r=linspace(2,4,500);
  2. initial=linspace(0.3,0.7,50);
  3. trans=200;
  4. k=1;
  5. while k<50

  6. i=1;
  7. while i<=500
  8. x(1)=initial(k);
  9. j=1;
  10. while j<=(trans-1)
  11. x(j+1)=r(i)*x(j)*(1-x(j));
  12. j=j+1;
  13. end
  14. a(i)=x(trans);
  15. b(i)=x(trans-1);
  16. c(i)=x(trans-2);
  17. d(i)=x(trans-3);
  18. i=i+1;
  19. end
  20. plot(r,a,'.','Color','red');hold on;
  21. %set(findobj(gca,'Type','line'),'Color','red');
  22. plot(r,b,'.','Color','blue');hold on;
  23. %set(findobj(gca,'Type','line'),'Color','blue');
  24. plot(r,c,'.','Color','yellow');hold on;
  25. plot(r,d,'.','Color','green');
  26. k=k+1;
  27. end
复制代码

评分

1

查看全部评分

 楼主| 发表于 2005-11-18 23:56 | 显示全部楼层
谢谢了!
发表于 2006-10-18 14:21 | 显示全部楼层
非常感激
发表于 2006-12-15 11:21 | 显示全部楼层
非常感谢
发表于 2007-5-15 16:21 | 显示全部楼层
真是感激呀!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-16 12:03 , Processed in 0.061383 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表