sssssxxxxx921 发表于 2007-9-19 11:13

这是不是取最大值法画的分岔图

我刚看到一个分岔图的程序
大家帮忙看看这是不是取最大值法画的分岔图   这是其中的一部分
for A = 2.082:-0.0005:2.02;
= ode45('ode1',,);
    data=X(:,1);
    n=length(data);
    N = round (n/ 2) ;
    a = data (N - 2) ;
    b = data (N - 1) ;
    for i = N :n
      if (b>=a) & (b>=data(i)) ;
      plot (A ,b) ;hold on ;
    %axis on ;
    %axis ( ) ;
      else
      end
      a = b ;
      b = data (i) ;
    end
end

octopussheng 发表于 2007-9-19 11:33

回复 #1 sssssxxxxx921 的帖子

对,是最大值法的程序!

秋月 发表于 2007-9-19 13:46

回复 #1 sssssxxxxx921 的帖子

你好!请问你能提供一些碰摩系统方程的参数吗?
我怎么老是得不到想要的结果!也做不混沌图!
谢谢了!

sssssxxxxx921 发表于 2007-9-19 15:29

回复 #2 octopussheng 的帖子

我怎么没看清他的逻辑思路   
我看他没用到周期,我想试试是否适合我的系统方程
帮忙解释一下此程序的逻辑思路,其中如果B>A&B>DATA(I)这一部分觉得思路不太清晰

sssssxxxxx921 发表于 2007-9-19 15:33

回复 #3 秋月 的帖子

你想要的结果是个什么样子   呵呵
你先检查一下程序再说,换参数不是首选

octopussheng 发表于 2007-9-19 21:30

回复 #4 sssssxxxxx921 的帖子

下面的最大值法例子作为参考!
clear all
global r
t0=;%积分时间
y0=;

%bifurcation
for r=1:0.05:30 %r的变化精度
    =ode45('Lorenz',t0,y0);
    =getmax(y(:,1));

    plot(r,Xmax,'b','markersize',1)
    hold on
    clear Xmax
end
xlabel('r')
ylabel('Xmax')


function dy = Lorenz(t,y,r)

dy=zeros(3,1);
dy(1)=-10*(y(1)-y(2));
dy(2)=-y(1)*y(3)+r*y(1)-y(2);
dy(3)=y(1)*y(2)-8*y(3)/3;


function = getmax(y)
a=length(y);
j=1;
for i=(a-1)/2:a

b=(y(i,1)-y(i-2,1))/2;
c=(y(i,1)+y(i-2,1))/2-y(i-1,1);

if y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)&c==0
Xmax(j)=y(i-1,1);
j=j+1;
elseif y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)
Xmax(j)=y(i-1,1)-b^2/(4*c);
j=j+1;
end
end

秋月 发表于 2007-9-19 22:00

回复 #5 sssssxxxxx921 的帖子

你好 !画的轴心轨迹都是圆,出现不了混沌!
我觉得参数有问题,参数是看别人文章找的.
我觉得程序应该没有问题,挺简单的!
还有个问题就是精度选择,怎么决定?
刚开始接转子碰摩的问题,有好多不懂的,
还请高手指点!
谢谢!

sssssxxxxx921 发表于 2007-9-19 22:16

回复 #7 秋月 的帖子

哪家的小闺女了 这么晚了还这么用功的学习
轴心轨迹一般不能说明是否产生混沌,至于精度看你的程序的要求了
第三,碰摩转子的参数我没有,你在论坛里搜索一下,有好些都是做碰摩转子的
你照着他们的例子做做

秋月 发表于 2007-9-20 07:52

回复 #8 sssssxxxxx921 的帖子

发愁啊!怎么就做不出来???
谢谢你啊!
能不能介绍一下,功率谱图啊?
谢谢了!请多指点!

sssssxxxxx921 发表于 2007-9-20 09:00

功率谱图那么大我怎么给你介绍啊,功率谱有好些做法,但是最肯定要经过傅立叶变换
最简单的是用matlab直接做,不过我是听人说的   不知道效果怎么样

sssssxxxxx921 发表于 2007-9-20 09:04

回复 #6 octopussheng 的帖子

这个程序也是一样啊,最大值那块总是照猫画虎,具体的思路却不清晰   不如频闪法那样清晰
你做过最大值法   你理解的思路讲讲?

octopussheng 发表于 2007-9-20 09:44

回复 #11 sssssxxxxx921 的帖子

我觉得你可以看一下这篇文章,最大值法的思路在这篇文章中应该能够看出来的!

勇俊:MATLAB在研究非线性混沌中的应用,吉林化工学院学报,2003年第2期

而且我记得以前也有帖子讨论过,最大值法做分岔图有时候也会存在缺陷,所以我觉得做分岔图还是要结合最大值法和庞加莱截面法的!

或者你可以参考这本书:Parker T.S., Chua L.O. Practical numerical algorithmsfor chaotic systems (Springer, 1989)(150dpi)(L)(T)(181s)

也有讲分岔图的绘制的!不过我还没有看透,:@L
有体会了再来分享一下啦!呵呵!

sssssxxxxx921 发表于 2007-9-20 11:10

回复 #12 octopussheng 的帖子

我最上边的那个程序就是勇俊的论文上的    呵呵
Parker T.S., Chua L.O. Practical numerical algorithmsfor chaotic systems (Springer, 1989)(150dpi)(L)(T)(181s)

这本书你有电子版吗我这没有啊

咕噜噜 发表于 2007-9-20 13:24

回复 #13 sssssxxxxx921 的帖子

这类程序论坛里面有,自己搜索,没必要重复贴出
to oct:这类程序还是以后给出链接合适

sssssxxxxx921 发表于 2007-9-20 14:38

回复 #14 咕噜噜 的帖子

小咕你弄错了我现在是想知道这个最大值法的逻辑思路,在论坛上只能找到它的程序,假如你用这个最大值法做出一个分岔图,别人问你怎么做的,你怎么回答,“我是照着 某人或论坛上的做的”,或者说 “ 别人都是这么做的”   这显然是不合适的    我想弄清楚原理是非常必要的    哈哈
页: [1] 2
查看完整版本: 这是不是取最大值法画的分岔图