octopussheng 发表于 2007-7-1 08:53

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截面是如何作出来的呢?还请大家指教啊!

无水1324 发表于 2007-7-1 09:25

要消除瞬态响应

zhangdexuan 发表于 2007-7-1 09:28

回复 #2 无水1324 的帖子

这好象是生成相图的程序吧,不是生成庞加莱的,晕

无水1324 发表于 2007-7-1 09:34

最后一个比较好

octopussheng 发表于 2007-7-1 09:38

原帖由 zhangdexuan 于 2007-7-1 09:28 发表 http://www.chinavib.com/forum/images/common/back.gif
这好象是生成相图的程序吧,不是生成庞加莱的,晕

确实是画相图的程序,但是时间取值和相图是不同的

octopussheng 发表于 2007-7-1 09:39

原帖由 无水1324 于 2007-7-1 09:34 发表 http://www.chinavib.com/forum/images/common/back.gif
最后一个比较好


是消除了瞬态响应,但感觉这个结果好像还是存在问题,像3楼的同志说的那样,确实就像是相图啊!,结果还是不确定,呵呵

无水1324 发表于 2007-7-1 09:47

to two above
确实我刚才没有看清楚

octopussheng 发表于 2007-7-1 09:50

看来我对于poincare截面的理解还是不够啊!

看目前常用的绘制Poincare截面的程序就两种,一种是上面的,还有一种是萝卜blog中的程序,但是我觉得好像都有一定的问题

上面的由gghhjj提出的绘图程序,看起来确实就像是对相图的截取,对相图的简化

而后一种,用单摆例子做的话,截面和相图根本对应不上(从坐标上面就可以看出其区别)

现在不知道怎么办才好啊!

无水1324 发表于 2007-7-1 10:04

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

这就是画Poincare图的程序了

octopussheng 发表于 2007-7-1 10:41

但是我现在问题就是,Poincare截面应该是用一个截面去截相空间中的点,因此Poincare截面上的点也应该是属于相空间的,
我现在做出来的截面图感觉和相图差不多啊!

不是很确定!

无水能不能帮我分析一下

无水1324 发表于 2007-7-1 10:55

原帖由 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),'.')
你用我给你的那个画图就可以了

octopussheng 发表于 2007-7-1 11:00

无水,这句话的意思是不是从第100点开始取点,每隔3×pi/2周期取一个点啊?

无水1324 发表于 2007-7-1 11:17

原帖由 octopussheng 于 2007-7-1 11:00 发表 http://www.chinavib.com/forum/images/common/back.gif
无水,这句话的意思是不是从第100点开始取点,每隔3×pi/2周期取一个点啊?

是的

octopussheng 发表于 2007-7-1 14:10

好,谢谢无水,我再试试吧!

无水1324 发表于 2007-7-1 14:17

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;
页: [1] 2 3 4 5 6 7 8
查看完整版本: Poincare截面的截取讨论