声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2994|回复: 19

[稳定性与分岔] mechanic05--关于分岔程序的探讨2

[复制链接]
发表于 2008-1-11 09:21 | 显示全部楼层 |阅读模式

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

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

x
各位新年好!!
1)我把上面分岔图特殊部分放大了.现在传上来,麻烦前辈给看看.从图上看,当参数取8.05以前时应该是1周期运动;当参数取8.13时应该是多周期运动;当参数取8.5时系统应该是混沌运动,对吧?
2)我把参数取4时的各图形及程序贴上来,麻烦前辈高人给看看,程序有无不妥之处.为什么当我取参数为8.13时(程序其他部分不动)并不是想象的多周期运动,而是和参数取4时结果相似?问题是否是画图点数取的范围有技巧?麻烦指点.非常感谢!!

clc;clear;
nt=4;
eta=0.1; b=24.35*10^4; omega=2; gamma=1;T=2*pi/omega;
str{1}='庞加莱截面-周期1吸引子';
    [t,x]=ode23('nnn',[0:T/1000:200*T],[0.02,0.02],[],nt,eta,b,omega,gamma);
    figure
    subplot(2,1,1)
    plot(t,x(:,1));
    title('位移曲线')
    xlabel('t');ylabel('x');
   
    subplot(2,2,3)
    plot(x(50000:end,1),x(50000:end,2));
    axis([-0.02 0.02 -0.2 0.2])
    xlabel('x');ylabel('dx/dt');
    title('相图')
   
   subplot(2,2,4)
   axis([-0.06 0.06 -0.05 0.05])
   hold on
   for i=50000:1000:100000
       plot(x(i,1),x(i,2),'k.');
   end
   title(str{1});
end
rezaihe5.jpg
rezaihe_zhouqi1.jpg
回复
分享到:

使用道具 举报

发表于 2008-1-11 16:14 | 显示全部楼层
你得到的应该是poincare映射而不是截面
还有就是你把所取时间点改动一下看看所得的映射是什么样的,感觉你现在得到的有点不太对,不过相图比较有意思
 楼主| 发表于 2008-1-11 17:40 | 显示全部楼层

回复 2楼 的帖子

谢谢了!!
如果我想把上面的poincare映射程序,改成poincare截面,那我应该怎摸该呢?
正在修改、画图。
发表于 2008-1-11 18:20 | 显示全部楼层
那就比较麻烦了啊,我也很少画poincare截面的,你搜索论坛看看吧,不好意思了
你这个程序改动会很大
 楼主| 发表于 2008-1-11 18:29 | 显示全部楼层
您好!这是我修改后的程序和图。只画出了前三个参数的图形。
自己感觉相图应该没问题,可是poincare映射就不对了。为什么会这样呢?看书上的程序取值范围都是像我前面给的程序一样,从中间某个范围取值的.比如
for i=50000:1000:100000
       plot(x(i,1),x(i,2),'k.');
   end

下面是我的程序
clc;clear;
nt=[8, 8.13, 16, pi^2, 8., 8.5, 8.53];
eta=0.1; b=24.35*10^4; omega=2; gamma=1;T=2*pi/omega;
str{1}='庞加莱截面-周期1吸引子';
str{2}='庞加莱截面';
str{3}='庞加莱截面';
str{4}='庞加莱截面';
str{5}='庞加莱截面';
str{6}='庞加莱截面';
str{7}='庞加莱截面';
str{8}='庞加莱截面';
for j=1
    [t,x]=ode45('nnn',[0:T/1000:200*T],[0.05,0.05],[],nt(j),eta,b,omega,gamma);
    figure
    subplot(2,1,1)
    plot(t,x(:,1));
    title('位移曲线')
    xlabel('t');ylabel('x');
   
    subplot(2,2,3)
    plot(x(60000:end,1),x(60000:end,2));
    axis([-0.03 0.03 -0.2 0.2])
    xlabel('x');ylabel('dx/dt');
    title('相图')
   
   subplot(2,2,4)
   axis([0 0.005 -0.002 0.002])
   hold on
   for i=60000:1000:200000
       plot(x(i,1),x(i,2),'k.');
   end
   title(str{j});
end  

for j=2
    [t,x]=ode45('nnn',[0:T/1000:200*T],[0.05,0.05],[],nt(j),eta,b,omega,gamma);
    figure
    subplot(2,1,1)
    plot(t,x(:,1));
    title('位移曲线')
    xlabel('t');ylabel('x');
   
    subplot(2,2,3)
    plot(x(60000:end,1),x(60000:end,2));
    axis([-0.03 0.03 -0.2 0.2])
    xlabel('x');ylabel('dx/dt');
    title('相图')
   
   subplot(2,2,4)
   axis([0 0.01 -0.003 0.003])
   hold on
   for i=60000:1000:200000
       plot(x(i,1),x(i,2),'k.');
   end
   title(str{j});
end  

for j=3
    [t,x]=ode45('nnn',[0:T/1000:200*T],[0.05,0.05],[],nt(j),eta,b,omega,gamma);
    figure
    subplot(2,1,1)
    plot(t,x(:,1));
    title('位移曲线')
    xlabel('t');ylabel('x');
   
    subplot(2,2,3)
    plot(x(60000:end,1),x(60000:end,2));
    axis([-0.05 0.05 -0.3 0.3])
    xlabel('x');ylabel('dx/dt');
    title('相图')
   
   subplot(2,2,4)
   axis([-0.05 0.05 -0.3 0.3])
   hold on
   for i=60000:1000:200000
       plot(x(i,1),x(i,2),'k.');
   end
   title(str{j});
end
nt=8.jpg
nt=8.13.jpg
nt=16.jpg
发表于 2008-1-11 19:23 | 显示全部楼层
这么看你给出的这几个参数是混沌的,主要是看poincare映射
发表于 2008-1-14 13:31 | 显示全部楼层
,omega一直没有变吧
发表于 2008-1-14 14:21 | 显示全部楼层
她变动的是其他参数吧
发表于 2008-1-14 15:06 | 显示全部楼层

回复 8楼 的帖子

怎么是 “她”呢
我在看了一下程序,确实是没有变化的,这个问题比较奇怪了
初值也没有变化,怎么会这样呢
发表于 2008-1-14 15:44 | 显示全部楼层
恩,是不是程序没给全啊
 楼主| 发表于 2008-1-14 15:55 | 显示全部楼层

回复 10楼 的帖子

程序给全了的.本来当参数nt<pi^2时画出的图应该是周期的.但我发现这好象与画图的区间有关.如果把时间取的足够大,再消去前面足够长的瞬态响应,画出的图反而不好.
 楼主| 发表于 2008-1-14 15:58 | 显示全部楼层

回复 9楼 的帖子

不好意思,我变动的是参数nt呀.间接:@) 看就是参数a的变化.
 楼主| 发表于 2008-1-14 22:25 | 显示全部楼层

回复 7楼 的帖子

从我5楼的帖子中nt=8.jpg的poincare图可以看出,系统的振幅几乎没变化,对吧?只是dx/dt值有变化.这能说明系统处于周期运动吗?我的系统解析分析结果是:当nt<pi^2时系统只有周期解.
发表于 2008-1-15 09:30 | 显示全部楼层

回复 13楼 的帖子

是的
这个个可能还是要靠楼主仔细地分析一下系统、以及程序
 楼主| 发表于 2008-1-15 10:09 | 显示全部楼层

回复 14楼 的帖子

谢谢!!:@)
我发现彭老师书上的van der pol 系统的poincare映射,当计算的区间取到[0:T/100:300*T]时,也会发生和我的类似的情况.(注:彭老师取的[0:T/100:50*T]).不知道该如何解释?
我的程序应该不会有问题吧?我觉得可能的情况是:
1)初始值的选取会影响吗?;
2)计算的时间段是否越长越好呢?照理,给定参数系统经过足够长的时间会趋近一个稳定状态,要摸周期运动,要摸概周期,要摸混沌,对吗?
我对这两个问题一直很疑惑.希望讨论!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-25 21:46 , Processed in 0.089969 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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