Matlab code for poltting the Poicanre sections of autonomous chaotic systems
查看( 207 ) /
评论( 22 )
TAG:
-
liliangbiao 发布于2008-04-27 18:47:41
-
一个漂亮的结果!
我用这个程序画了J C Sprott的 Some simple chaotic flows 一文中的 Case A 系统,在不同的初值下得到了 如下的图像!不同的颜色代表不同的初值!
[ 本帖最后由 liliangbiao 于 2008-4-27 18:50 编辑 ]
-
无水1324 发布于2008-04-27 22:17:33
-
回复 2楼 的帖子
感谢你的分享,图做的很漂亮的,也花了不少时间吧
-
octopussheng 发布于2008-05-04 15:35:24
-
回复 2楼 的帖子
这个图能够说明什么问题呀?呵呵,对这个不是很了解哦!
-
liliangbiao 发布于2008-05-06 10:17:49
-
说明了很多道理,最明显的是Volume-conserving System 的一些特征,吸引子共存等现象!
-
qingzheng25 发布于2008-05-11 20:09:19
-
为什么我做不出来
我抄你的程序 出错Input argument "x" is undefined. 为什么
-
octopussheng 发布于2008-05-11 20:24:50
-
你的运行方式可能有误
-
hehy350901发布于2008-07-22 21:22:58
-
我照你的程序原样做的
图形差的太多
y值量级到了10^5
是什么原因呐
-
hehy350901发布于2008-07-22 21:34:16
-
你是对的
呵呵,我作了半天才发现是原来的变量有问题
加了一句clear就解决了

-
gaoxj3000发布于2008-07-23 10:48:23
-
对不起,liliangbiao你的图我认为有问题
对不起,liliangbiao你的图我认为有问题,你的Poincare截面设计思想是对的,但是实现过程是有问题的,
if abs(Y(k,3)-0)<1e-2 即认为只要离 Z 面距离小于 1e-2 的点都是这个面上的,这会引起很大的误差,我用你的源程序做了三个相图(见图),分别为 x-y, z-x, z-y,从图中可看出,实际上许多不在截面上的点都认为是在截面上了,注意后两幅图横坐标最大只为 1e-2。个人认为应该增加精度!
我用我自己的程序做了这个系统的相图,分别与上面的图对应,可以看出 x-y 图只有中间部分,没有上下两个部分!!!!! 而从 z-x, z-y 图可看出精度控制在 1e-11 范围内,也就是说,离 Z 面距离小于 1e-11 的点才认为是这个面上的点,这样才好嘛! 请大家说说看!
-
liliangbiao 发布于2008-07-23 11:47:52
-
你自己的程序得到的映射图 肯定不正确,我告诉你为什么 这是一个低分数维系统,哪么你的第二个和第三个图像如果正确的话,哪么映射上的点就几乎填充了整个平面,这表明,这个系统的分数维很大,以至于相轨线充满了整个空间,这样得到的分数维就很大。而事实上,这个系统的Maximally complex chaotic attractor的分数维也不超过1.2. 至于你说的精度问题,我知道的,因为你可以选择更为精细的误差,哪么你的误差越小,得到的图像上的点就会越少,除非你无限增大循环次数,得到更多的相轨线,这样的话,无疑会增加运算时间,并且Matlab的弱点就在于对于循环的运算速度太慢,如果你能利用C或者VC++来计算的话,你可以得到更多的相轨线,以至于可能把循环增加到10^8次,误差选定你的那个,半个小时后,就得到比较精确的数值。但是这里使用的是Matlab,不建议增加更多的次数,事实上,对于Matlab次数到10^4,就需要大约很长的一段时间了!谢谢你的评论!欢迎继续交流!
[ 本帖最后由 liliangbiao 于 2008-7-23 11:58 编辑 ]
-
gaoxj3000发布于2008-07-23 12:19:31
-
回复 11楼 的帖子
看的不是很懂,对这个系统个人不是很了解,只对取Poincare截面做图比较感兴趣,那我要问你,假设现在并不知道这是个低分维系统,只给出了这些参数下的积分曲线,让你取截面做图,你如何解释我的图是错误的,将精度提高有问题?
另我的图也是在matlab下算的,时间增加并不多,源程序2分钟,我的3分钟算完。
请“无水”高手参与进来,说说你的想法!!
-
无水1324 发布于2008-07-23 13:26:43
-
回复 12楼 的帖子
其实我的看法是赞成你10楼和12楼的说法的,取1e-2,并不是精确的算法
-
liliangbiao 发布于2008-07-23 21:11:50
-
因为我做三维自治混沌系统 我不会单纯的只做一个参变量的分析,而是更多的考虑到两个参数平面上的分叉和混沌区域的分布情况,其中Maximally complex chaotic attractor 必求的,那个根据整个参数平面上的 D_(KY)的分布情况,从而能较为简单的判定出这个系统的最为复杂的混沌吸引子,只凭借积分曲线,我不能判断系统的分数维数到底有多大,所以我觉得还是要依靠参数空间的分布情况做的!例如,我可以从计算的结果中可以清楚的看到那些参数使得系统处于混沌运动状态或者超混沌运动状态(Hyper-chaotic, >=4-D), 这就是计算整个参数平面上的 D_(KY)的分布情况的好处。事实上,更多的学者采用了我的那种做法,并没有一味地将提高误差作为他们的目标,而是更多的放在了分析其动力学行为以及叶支的折叠上(请参看Lu JHand Chen GR的书籍和Paper)! 当然 你的做法 我并没有反对,起码说起来,但是你的方法得到的后两个图像是不正确的!这是我强调的!你可以吧你的程序贴上,我们继续探讨这一问题,欢迎继续交流!谢谢你的精彩评论!
[ 本帖最后由 liliangbiao 于 2008-7-23 21:13 编辑 ]
-
gaoxj3000发布于2008-07-24 10:31:29
-
回复 14楼 的帖子
liliangbiao 说的也很有道理,我们都是做的数值计算分析,用的是计算机,有时我在计算中发现,一味提高精度或者加密计算,有时效果可能不好,反而低精度的时候的时候要好! 实际上我并没有确定说你做的图有问题,只是觉得程序中用 1e-2 可能精度太低,当然可能对你的系统或者计算量、计算要求已经足够了。现在做研究真不容易,解析解一般很难求,大量的计算全靠计算机,有时结果不出来,也很难找原因。敢问:大家不要计算机数值计算分析的搞研究的能有几个?寥寥无几吧!
还好你的系统只有3阶,还可以简化一下搞解析研究,像我的系统有42阶,就是解析形式的也很麻烦推导解析形式解,再加上非光滑的系统,没有计算机我就什么也做不了,伤心啊!
-
homage79发布于2008-08-17 16:39:17
-
楼主的程序不错,我又改变了一下截面,将其换到YZ平面上了,得到的结果如下:
-
homage79发布于2008-08-17 16:40:28
-
结果
-
homage79发布于2008-08-17 16:41:32
-
但是这是对三自由度系统,如果系统只有两个自由度,或者只有一个自由度呢?
这种方法岂不是又失效了?
还是要用频闪法才行啊!
-
胡晓宇发布于2008-09-12 15:44:46
-
liliangbiao,看你的程序我有一个疑问,poincare截面选取时一般截面要求截面与轨道处处垂直相交,但从程序中看,这一点怎么保证呢?
-
无水1324 发布于2008-09-15 21:52:09
-
回复 19楼 胡晓宇 的帖子
没有必要垂直相交吧?
-
胡晓宇发布于2008-09-22 18:43:43
-
回复 楼主 liliangbiao 的帖子
针对abs(Y(k,3)-0)<1e-2定义平面,是不是穿过这个平面的点还要定义一下方向,abs(Y(k,3)-0)<1e-2来定义刚好正负方向都包括了,需不需要仅取一半?





