liliangbiao 发表于 2008-4-13 13:30

自治系统的Poincare截面的matlab程序实现

下面的这个程序是修改于某个博客上的程序,若侵犯了版权,请及时告知,以便我及时修改!谢谢!
% M File for systems, which can be modified by any autonomous chaotic systems, should be saved in the Work file of your Matlab!!!!!!!
function dx=Chu(t,x);
% Chu system
% dx=Chu(t,)
% t-time,x,y,z- Parameters,a,b,c-coefficients
% eg: dx=Chu(0,)%Of course, you can verified the other values of parameter b if you like,
%some typical are given in the listed paper below.
%% Please refer one of our published papers as follows:
%褚衍东, 李险峰, 张建刚,常迎香.一个新自治混沌系统的计算机仿真与电路模拟.
%《四川大学学报:自然科学版》-2007年44卷3期 -596-602.
dx(1,1)=x(4)*(x(2)-x(1));
dx(2,1)=x(1)*x(3)-x(2);
dx(3,1)=x(5)-x(1)*x(2)-x(6)*x(3);
dx(4,1)=0;
dx(5,1)=0;
dx(6,1)=0;


% Another M File, which can be pasted in the Command windows or saved in the Work file of your Matlab.

Z=[];
=ode45('Chu',,);
for k=1:length(Y)
if abs(Y(k,3)-0)<1e-2; % Be careful of 0, that is z=0, namely, on the plane of x-y, the Poincare sections we chose in this paper,
%which can be selected any other Poincare section if you like, e.g. x,y,z=0 or others!
Z=;
end
end
plot(Z,'.','markersize',2)
title('Chu system's Poincare map on the plane of z=0')
xlabel('x'),ylabel('y')'自

[ 本帖最后由 无水1324 于 2008-4-27 22:18 编辑 ]

liliangbiao 发表于 2008-4-27 18:47

一个漂亮的结果!

我用这个程序画了J C Sprott的 Some simple chaotic flows 一文中的 Case A 系统,在不同的初值下得到了 如下的图像!不同的颜色代表不同的初值!

[ 本帖最后由 liliangbiao 于 2008-4-27 18:50 编辑 ]

无水1324 发表于 2008-4-27 22:17

回复 2楼 的帖子

感谢你的分享,图做的很漂亮的,也花了不少时间吧

octopussheng 发表于 2008-5-4 15:35

回复 2楼 的帖子

这个图能够说明什么问题呀?呵呵,对这个不是很了解哦!

liliangbiao 发表于 2008-5-6 10:17

说明了很多道理,最明显的是Volume-conserving System 的一些特征,吸引子共存等现象!

qingzheng25 发表于 2008-5-11 20:09

为什么我做不出来

我抄你的程序 出错Input argument "x" is undefined. 为什么

octopussheng 发表于 2008-5-11 20:24

你的运行方式可能有误

hehy350901 发表于 2008-7-22 21:22

我照你的程序原样做的

图形差的太多
y值量级到了10^5
是什么原因呐

hehy350901 发表于 2008-7-22 21:34

你是对的

呵呵,我作了半天才发现是原来的变量有问题
加了一句clear就解决了
:@L

gaoxj3000 发表于 2008-7-23 10:48

对不起,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-7-23 11:47

你自己的程序得到的映射图 肯定不正确,我告诉你为什么 这是一个低分数维系统,哪么你的第二个和第三个图像如果正确的话,哪么映射上的点就几乎填充了整个平面,这表明,这个系统的分数维很大,以至于相轨线充满了整个空间,这样得到的分数维就很大。而事实上,这个系统的Maximally complex chaotic attractor的分数维也不超过1.2. 至于你说的精度问题,我知道的,因为你可以选择更为精细的误差,哪么你的误差越小,得到的图像上的点就会越少,除非你无限增大循环次数,得到更多的相轨线,这样的话,无疑会增加运算时间,并且Matlab的弱点就在于对于循环的运算速度太慢,如果你能利用C或者VC++来计算的话,你可以得到更多的相轨线,以至于可能把循环增加到10^8次,误差选定你的那个,半个小时后,就得到比较精确的数值。但是这里使用的是Matlab,不建议增加更多的次数,事实上,对于Matlab次数到10^4,就需要大约很长的一段时间了!谢谢你的评论!欢迎继续交流!

[ 本帖最后由 liliangbiao 于 2008-7-23 11:58 编辑 ]

gaoxj3000 发表于 2008-7-23 12:19

回复 11楼 的帖子

看的不是很懂,对这个系统个人不是很了解,只对取Poincare截面做图比较感兴趣,那我要问你,假设现在并不知道这是个低分维系统,只给出了这些参数下的积分曲线,让你取截面做图,你如何解释我的图是错误的,将精度提高有问题?
    另我的图也是在matlab下算的,时间增加并不多,源程序2分钟,我的3分钟算完。

    请“无水”高手参与进来,说说你的想法!!

无水1324 发表于 2008-7-23 13:26

回复 12楼 的帖子

其实我的看法是赞成你10楼和12楼的说法的,取1e-2,并不是精确的算法

liliangbiao 发表于 2008-7-23 21:11

因为我做三维自治混沌系统 我不会单纯的只做一个参变量的分析,而是更多的考虑到两个参数平面上的分叉和混沌区域的分布情况,其中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-7-24 10:31

回复 14楼 的帖子

liliangbiao 说的也很有道理,我们都是做的数值计算分析,用的是计算机,有时我在计算中发现,一味提高精度或者加密计算,有时效果可能不好,反而低精度的时候的时候要好!实际上我并没有确定说你做的图有问题,只是觉得程序中用 1e-2 可能精度太低,当然可能对你的系统或者计算量、计算要求已经足够了。现在做研究真不容易,解析解一般很难求,大量的计算全靠计算机,有时结果不出来,也很难找原因。敢问:大家不要计算机数值计算分析的搞研究的能有几个?寥寥无几吧!
       还好你的系统只有3阶,还可以简化一下搞解析研究,像我的系统有42阶,就是解析形式的也很麻烦推导解析形式解,再加上非光滑的系统,没有计算机我就什么也做不了,伤心啊!
页: [1] 2
查看完整版本: 自治系统的Poincare截面的matlab程序实现