Poincare截面的截取讨论
一个例子,代码如下:——用的是gghhjj提出的方法%%%方程定义
function df=dafen(t,x,flag,force)
df=;
%%%Poincare截面绘制
clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=3*pi/2;
=ode45(@dafen,,,options,[],ff);
plot(x(100:end,1),x(100:end,2),'.')
%pojialai
hold on
i=2000:100:3000
plot(x(i,1),x(i,2),'*')
在绘图的时候需要取点,我做了三组,一个是从100点开始取、从500点开始取,还有从100点开始取,请问各位,那个截面是最合理的,选点有没有什么要求注意的啊??
请大家一起讨论帮忙!
还有一个问题——用这样的方法作出来的截面图感觉就是将相图进行点离散,那向很多书上做出的那些很漂亮的Poincare截面是如何作出来的呢?还请大家指教啊! 要消除瞬态响应
回复 #2 无水1324 的帖子
这好象是生成相图的程序吧,不是生成庞加莱的,晕 最后一个比较好 原帖由 zhangdexuan 于 2007-7-1 09:28 发表 http://www.chinavib.com/forum/images/common/back.gif这好象是生成相图的程序吧,不是生成庞加莱的,晕
确实是画相图的程序,但是时间取值和相图是不同的 原帖由 无水1324 于 2007-7-1 09:34 发表 http://www.chinavib.com/forum/images/common/back.gif
最后一个比较好
是消除了瞬态响应,但感觉这个结果好像还是存在问题,像3楼的同志说的那样,确实就像是相图啊!,结果还是不确定,呵呵 to two above
确实我刚才没有看清楚 看来我对于poincare截面的理解还是不够啊!
看目前常用的绘制Poincare截面的程序就两种,一种是上面的,还有一种是萝卜blog中的程序,但是我觉得好像都有一定的问题
上面的由gghhjj提出的绘图程序,看起来确实就像是对相图的截取,对相图的简化
而后一种,用单摆例子做的话,截面和相图根本对应不上(从坐标上面就可以看出其区别)
现在不知道怎么办才好啊! plot(x(100:100:end,1),x(100:100:end,2),'.')
这就是画Poincare图的程序了 但是我现在问题就是,Poincare截面应该是用一个截面去截相空间中的点,因此Poincare截面上的点也应该是属于相空间的,
我现在做出来的截面图感觉和相图差不多啊!
不是很确定!
无水能不能帮我分析一下 原帖由 octopussheng 于 2007-7-1 10:41 发表 http://www.chinavib.com/forum/images/common/back.gif
但是我现在问题就是,Poincare截面应该是用一个截面去截相空间中的点,因此Poincare截面上的点也应该是属于相空间的,
我现在做出来的截面图感觉和相图差不多啊!
不是很确定!
无水能不能帮我分析一下
plot(x(100:100:end,1),x(100:100:end,2),'.')
你用我给你的那个画图就可以了 无水,这句话的意思是不是从第100点开始取点,每隔3×pi/2周期取一个点啊? 原帖由 octopussheng 于 2007-7-1 11:00 发表 http://www.chinavib.com/forum/images/common/back.gif
无水,这句话的意思是不是从第100点开始取点,每隔3×pi/2周期取一个点啊?
是的 好,谢谢无水,我再试试吧! clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=2*pi/1.2;
=ode45(@dafen,,,options,[],ff);
plot(x(7000:100:end,1),x(7000:100:end,2),'.')
你的问题我发现了
主要是周期取错了,tt=2*pi/1.2;