wangjianbao11 发表于 2011-4-29 22:45

lorenz的分岔图,大家快看一下吧


我做的lorenz分岔图,大家帮忙分析一下吧

meiyongyuandeze 发表于 2011-4-29 23:10

回复 1 # wangjianbao11 的帖子

用的是什么方法呢,洛伦茨系统不会出现这样的间断吧!

wangjianbao11 发表于 2011-4-30 08:01

我用的是极大值法,得到了上边的图像,a=10,b=8/3,c=,我做的理论推导,也发现是对的,具体是什么图形,您能帮忙分析一下吗?谢谢了大哥哥

meiyongyuandeze 发表于 2011-4-30 19:13

本帖最后由 meiyongyuandeze 于 2011-4-30 19:42 编辑

回复 3 # wangjianbao11 的帖子

感觉不应该出现那样的间断的情况啊!论坛中有很多关于分岔图的做法你可以参考下,洛伦兹系统是比较典型的非线性系统,应该程序比较的多,你试下庞加莱界面方法,截取像平面X=Y试试!
【总结帖】分岔图绘制不同方法的总结、比较
http://forum.vibunion.com/forum-viewthread-tid-60104-fromuid-77817.html

wangjianbao11 发表于 2011-4-30 19:26

大哥,我看了您推荐的方法,但我的程序有什么缺陷,或者说它有什么不对,麻烦您一下,能帮我看一下吗?我的程序运行结果就是如此。

meiyongyuandeze 发表于 2011-4-30 19:42

你把程序贴出来,让大家一起帮你看看吧!

wangjianbao11 发表于 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=;
k=0;
YY=[];
for c=range
    c
   y0=
   %rand(1,3);
   k=k+1;
    tspan=;
   =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,),'k.','markersize',1);
   end
    hold on;
    index(k)=j-1;
end
xlabel('r');
ylabel('x max');

wangjianbao11 发表于 2011-5-3 09:17

给位帮忙看一下吧

meiyongyuandeze 发表于 2011-5-3 09:48

用最大方法可能会导致画出的图不连续。可以采用固定截面方法来取点!

wangjianbao11 发表于 2011-5-3 09:54

谢谢了师哥,但是用庞加莱截面法我连续做了好几天,还是做不成,师哥您能帮我一下吗,教我一下程序该怎么写吗
页: [1]
查看完整版本: lorenz的分岔图,大家快看一下吧