声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 24800|回复: 109

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

[复制链接]
发表于 2007-7-1 08:53 | 显示全部楼层 |阅读模式

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

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

x
一个例子,代码如下:——用的是gghhjj提出的方法
%%%方程定义
function df=dafen(t,x,flag,force)
df=[x(2);force*cos(1.2*t)-x(1)^3+x(1)-0.3*x(2)];

%%%Poincare截面绘制
clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=3*pi/2;
[t,x]=ode45(@dafen,[0:tt/100:80*tt],[0,0],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截面是如何作出来的呢?还请大家指教啊!

这个是从第100点开始取点

这个是从第100点开始取点

这个是从第500点开始取点

这个是从第500点开始取点

这个是从第1000点开始取点

这个是从第1000点开始取点
回复
分享到:

使用道具 举报

发表于 2007-7-1 09:25 | 显示全部楼层
要消除瞬态响应
发表于 2007-7-1 09:28 | 显示全部楼层

回复 #2 无水1324 的帖子

这好象是生成相图的程序吧,不是生成庞加莱的,晕
发表于 2007-7-1 09:34 | 显示全部楼层
最后一个比较好
 楼主| 发表于 2007-7-1 09:38 | 显示全部楼层
 楼主| 发表于 2007-7-1 09:39 | 显示全部楼层
原帖由 无水1324 于 2007-7-1 09:34 发表
最后一个比较好



是消除了瞬态响应,但感觉这个结果好像还是存在问题,像3楼的同志说的那样,确实就像是相图啊!,结果还是不确定,呵呵
发表于 2007-7-1 09:47 | 显示全部楼层
to two above
确实我刚才没有看清楚
 楼主| 发表于 2007-7-1 09:50 | 显示全部楼层
看来我对于poincare截面的理解还是不够啊!

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

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

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

现在不知道怎么办才好啊!
发表于 2007-7-1 10:04 | 显示全部楼层
plot(x(100:100:end,1),x(100:100:end,2),'.')

这就是画Poincare图的程序了
 楼主| 发表于 2007-7-1 10:41 | 显示全部楼层
但是我现在问题就是,Poincare截面应该是用一个截面去截相空间中的点,因此Poincare截面上的点也应该是属于相空间的,
我现在做出来的截面图感觉和相图差不多啊!

不是很确定!

无水能不能帮我分析一下
发表于 2007-7-1 10:55 | 显示全部楼层
原帖由 octopussheng 于 2007-7-1 10:41 发表
但是我现在问题就是,Poincare截面应该是用一个截面去截相空间中的点,因此Poincare截面上的点也应该是属于相空间的,
我现在做出来的截面图感觉和相图差不多啊!

不是很确定!

无水能不能帮我分析一下


plot(x(100:100:end,1),x(100:100:end,2),'.')
你用我给你的那个画图就可以了
 楼主| 发表于 2007-7-1 11:00 | 显示全部楼层
无水,这句话的意思是不是从第100点开始取点,每隔3×pi/2周期取一个点啊?
发表于 2007-7-1 11:17 | 显示全部楼层
原帖由 octopussheng 于 2007-7-1 11:00 发表
无水,这句话的意思是不是从第100点开始取点,每隔3×pi/2周期取一个点啊?


是的
 楼主| 发表于 2007-7-1 14:10 | 显示全部楼层
好,谢谢无水,我再试试吧!
发表于 2007-7-1 14:17 | 显示全部楼层
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:100:end,1),x(7000:100:end,2),'.')

你的问题我发现了
主要是周期取错了,tt=2*pi/1.2;
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-19 00:14 , Processed in 0.124585 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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