声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: octopussheng

[分形与混沌] Poincare截面的截取讨论

[复制链接]
 楼主| 发表于 2007-7-1 14:48 | 显示全部楼层
无水,你的意思我明白了,方程中有周期项的时候,例如这个例子中,激励频率omiga=1.2,那么做poincare截面的时候,截面就应该是T=2*pi/omiga,

对吧?如果是多频激励的话,如omiga1=3,omiga2=4,这样的话截面应该怎么取呢?

呵呵,问题比较多,麻烦无水啦!
回复 支持 反对
分享到:

使用道具 举报

发表于 2007-7-1 15:04 | 显示全部楼层

回复 #15 无水1324 的帖子

plot(x(7000:100:end,1),x(7000:100:end,2),'.')

这里面的  7000  ,100分别代表什么意思?画出来的. 是什么?

plot(x(i,1),x(i,2),'*')
画出来的*是什么呢?
请帮忙解释一下,无水
发表于 2007-7-1 15:07 | 显示全部楼层

回复 #15 无水1324 的帖子

请教无水,这个程序画出来的到底是不是杜芬方程的庞加莱截面图呢??
下面是我找的绘制程序,为什么差别那么大??

% Poincare_section[绘制庞加莱截面图]
betaa=0.25;
F=1.093;
v=2/3;
Poin=inline(['[x(2);',...
'-2*betaa*x(2)-x(2).^2.*sin(x(1))+F*cos(v*t);',...
'v]'],...
't','x','flag','betaa','F','v');
% Poincare_section[绘制庞加莱截面图]
[t,x]=ode45(Poin,[0,2800],[0,1.5,0],[],betaa,F,v);
x(:,2)=mod(x(:,2),2*pi)-pi;

phi0=pi*2/3; % 选择phi=2*pi/3这个截面
for k=1:round(max(x(:,3))/2/pi);
d=x(:,3)-(k-1)*2*pi-phi0;
[P,K]=sort(abs(d));
x1l=x(K(1),1);
x1r=x(K(2),1);
x2l=x(K(1),2);
x2r=x(K(2),2);
x3l=x(K(1),3);
x3r=x(K(2),3);
if abs(P(1))+abs(P(2))<3e-16;
X1(k)=x1l;
X2(k)=x2l;
else
Q=polyfit([x3l,x3r],[x1l,x1r],1);
X1(k)=polyval(Q,(k-1)*2*pi-phi0);
Q=polyfit([x3l,x3r],[x2l,x2r],1);
X2(k)=polyval(Q,(k-1)*2*pi-phi0);
end
end
plot(X1,X2,'.');
xlabel('\theta','fontsize',14);
ylabel('d\theta/dt','fontsize',14);
发表于 2007-7-1 15:15 | 显示全部楼层
原帖由 octopussheng 于 2007-7-1 14:48 发表
无水,你的意思我明白了,方程中有周期项的时候,例如这个例子中,激励频率omiga=1.2,那么做poincare截面的时候,截面就应该是T=2*pi/omiga,

对吧?如果是多频激励的话,如omiga1=3,omiga2=4,这样的话截面应 ...



对,有激励的时候,是以激励的周期为基准的。但是在多频激励的时候就比较复杂不能够直接用
发表于 2007-7-1 15:16 | 显示全部楼层
原帖由 zhangdexuan 于 2007-7-1 15:04 发表
plot(x(7000:100:end,1),x(7000:100:end,2),'.')

这里面的  7000  ,100分别代表什么意思?画出来的. 是什么?

plot(x(i,1),x(i,2),'*')
画出来的*是什么呢?
请帮忙解释一下,无水



取7000是任意的,主要是去掉前面的瞬态响应,100代表间隔100个点去一点画图,也就是一个周期取一个点
发表于 2007-7-1 15:17 | 显示全部楼层
原帖由 zhangdexuan 于 2007-7-1 15:07 发表
请教无水,这个程序画出来的到底是不是杜芬方程的庞加莱截面图呢??
下面是我找的绘制程序,为什么差别那么大??

% Poincare_section[绘制庞加莱截面图]
betaa=0.25;
F=1.093;
v=2/3;
Poin=inline(['[x ...



这个是“萝卜驿站”上的程序吧,你可以直接根据上面那个程序自己写一个。
发表于 2007-7-1 15:18 | 显示全部楼层

回复 #20 无水1324 的帖子

那里面画出来的  .   和   *  分别代表什么呢,无水?
发表于 2007-7-1 16:07 | 显示全部楼层
一样的。都是频闪得到的离散点,就是近似得到的poincare map同解轨道的首次回归点。一般可以反映周期解的性态了。
发表于 2007-7-1 16:36 | 显示全部楼层

回复 #23 flybaly 的帖子

这个程序生成的到底是庞加莱截面图还是庞加莱图哦,两者有区别吗?
发表于 2007-7-1 16:38 | 显示全部楼层
原帖由 zhangdexuan 于 2007-7-1 16:36 发表
这个程序生成的到底是庞加莱截面图还是庞加莱图哦,两者有区别吗?



二者没有什么区别
发表于 2007-7-1 16:39 | 显示全部楼层
原帖由 zhangdexuan 于 2007-7-1 15:18 发表
那里面画出来的  .   和   *  分别代表什么呢,无水?



‘.’ 就是你画图的形状是一个‘.’
‘* ’也是一样
发表于 2007-7-1 16:52 | 显示全部楼层

回复 #26 无水1324 的帖子

哦,我意思是为什么要用  .   和 * 区别,  这两种不同的点在程序中分别是什么点
发表于 2007-7-1 16:59 | 显示全部楼层
就是每周期取地Poincare点
那两种情况,没有什么实质的区别
发表于 2007-7-1 16:59 | 显示全部楼层

回复 #24 zhangdexuan 的帖子

你把绳子缠绕几圈然后用一张纸横断,纸上得到的点就是p映射点,而那张纸才是截面图。
你再想想看程序里面得到的是什么,实在不行就把一部分相图和点用不同的颜色同时在一个图上表示出来,看看就明白了。。。
发表于 2007-7-1 17:03 | 显示全部楼层
clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=2*pi/1.2;
[t,x]=ode45(@dafen,[0:tt/100:80*tt],[0,0],options,[],ff);
plot(x(7000:end,1),x(7000:end,2),'.');hold on
plot(x(7000:100:end,1),x(7000:100:end,2),'ro')

你看一下这个差别吧
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-18 20:13 , Processed in 0.189307 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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