声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 14623|回复: 50

[分形与混沌] 关于吕金虎CC算法和最大Lyapunov指数计算的一些问题的说明

[复制链接]
发表于 2008-1-2 09:09 | 显示全部楼层 |阅读模式

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

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

x
这两天一直在编这两个程序,最大的感受是: 原来,很多时候,我们离结果仅半步之遥!

CC算法:

1原始数据量3000,tmax竟能达到200的迷惑

开始很纳闷,3000的数据量当t循环到200时每组数据才长度才15,在计算关联积分时,在嵌入维数m=5,时间延迟200时怎么重构相空间,反复试算了好多次,都出错退出循环,首先怀疑书上的结果有误,找了英文原文书上跟原文意思一样,没错,经过近两天的思索,终于开窍了,原来每次取定t时,将时间序列分成t个子序列,计算子序列的关联积分进行相空间重构时,其实该子序列每个数据之间已经经过t的延迟了,所以重构时
就不能在进行时间延迟。

2看了论坛上的一些程序,发现用的循环太多,不知道已经发布的程序进行3000数据的CC计算时间花费多大
我感觉自己的程序比帖子的程序要优,用我的机子大概费时1小时左右,网上有帖子说,仅花两分钟,我觉得肯定不可能。编程时有些循环应该尽量避免,这也是我们选择Matlab的初衷(方便的矩阵操作)

最大Lyapunov指数计算的最小数据量法

自己编了程序,我的确感觉程序是按书上步骤做的,但结果就是不对!在论坛上搜索了一些帖子,根据自己的体会,我又对自己的程序做了如下尝试:

1 开始时,我的范数用的都是无穷范数,虽然有文献给出的结果显示,范数之间的差别对结果影响不大,但因为要计算的是最大Lyapunov指数,我感觉在计算最邻近点时应采用2范数,而最后计算距离演化时应采用无穷范数(凸显指数最大),(因为我看的是吕金虎的超星版本的书,里边符号很模糊,开始还以为印刷有误,但书上应该是比较合理的)


2 跟大家一样,最后拟合直线时,图像很糟糕,我近乎崩溃了,我是严格按照书上的数据产生方法做的,但却不能给出图4.7-4.9,我开始还是怀疑书有错(现在写书的作者严谨度真的不敢恭维,尤其**工业出版社的书,印刷滥价格死贵),如果连算例的结果都做不出,怎么算别的,最后发现,我的数据跟书上的不一样(大家碰见这种情况,如果算例里有给出时间序列的时域图也可以作类似的检查),但按照书上的办法,的确不能产生类似的4.6的图形,于是我加大了chen系统的仿真时间 0~60秒 按照步长1e-4,总共产生了60万个点,才产生大体根书上差不多的图形,(书上才5万点),去除前面10万点,然后每隔100取一个数得到5千点,用自己的程序运行,结果几乎跟书上图4.7-4.9一样,我很高兴,当时其实已晚上1点了。

有的时候真的离结果非常近了,但可惜的是多数人放弃了...

点评

赞成: 5.0
赞成: 5
楼主的专研精神实属敬佩!五体投地!  发表于 2013-8-13 16:50

评分

1

查看全部评分

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2008-1-2 10:28 | 显示全部楼层
cc算法那个不能再详细说说?
我感觉自相关算延迟太不准了,计算维度cc也比GP好一些,但cc经常出现重构函数失效的情况,我有点要放弃了
 楼主| 发表于 2008-1-2 11:11 | 显示全部楼层

回复 #2 JulianChin 的帖子

在嵌入维数m,时间延迟t情况下,序列相空间重构时,可以采用以下几行代码,生成的每一个列向量为相空间中的一点:
N=length(x);
M=N-(m-1)*t;
xv=zeros(m,M);
for ii=1:m
    xv(ii,:)=x([((ii-1)*t+1):1:((ii-1)*t+M)]);
end
但在子序列相空间重构时,应该采用
xv(ii,:)=x([((ii-1)+1):1:((ii-1)+M)]);
因为子序列生成时是每隔t延迟取数,已经相当于原序列里经过延迟了
不知道我说清楚了没?你可以再仔细体会下
发表于 2008-1-2 15:41 | 显示全部楼层

回复 #3 yufeiqun2008 的帖子

我说怎么不对劲呢,谢谢你了,还有这个问题能不能给大家讲一下
http://forum.vibunion.com/forum/thread-57158-1-1.html
发表于 2008-1-2 19:57 | 显示全部楼层

回复 #1 yufeiqun2008 的帖子

yufeiqun2008:你所说CC算法的问题我也发现了,但你说的“重构时就不能在进行时间延迟”是什么意思啊?我没有理解
重构的时候不是有了嵌入维数m和延迟t才能做吗?
如果这个时候不进行延迟t,要怎么算?
 楼主| 发表于 2008-1-2 20:56 | 显示全部楼层

回复 #5 anqikeli 的帖子

是" 重构时就不能再进行延迟t",你可以仔细看看回复2中的重构语句

因为子序列在生成时已经经过延迟t了

设原序列为xi,i=1~N,当m=2,t=3时 得到的t个子序列为

x1,x4,x7,x10,x13,x16,x19,x22,...
x2,x5,x8,x11,x14,x17,x20,x23,...
x3,x6,x9,x12,x15,x18,x21,x24,...

对于原始序列如果重构时,情况如下
(x1,x4),(x2,x5),(x3,x6)

如果对第一个子序列采用同样的重构方式,情况如下(这是不对的)
(x1,x13),(x4,x16),(x7,x19),...

对第一个子序列的重构应该采用下面的方式
(x1,x4),(x4,x7),(x7,x10),(x10,x13),...
这正是回复2中语句之间的差别
发表于 2008-1-3 11:05 | 显示全部楼层
非常感谢,终于明白了
我还有个问题,我做的CC方法来验证Lorenz系统,得出的图和http://forum.vibunion.com/space/html/37/t-51237.html几乎一样
这样得到的延迟就不对了啊,不知道是怎么回事
lorenz-3000-cc.JPG
 楼主| 发表于 2008-1-3 11:11 | 显示全部楼层

回复 #7 anqikeli 的帖子

把你的Lorenz数据给我发一分看看,用我的程序跑一下,我觉得这个图有点古怪啊

yufeiqun2004@yahoo.com
发表于 2008-1-4 19:35 | 显示全部楼层
我给你发邮箱了,不过被退信了,不知道怎么回事
我把序列传上来吧,你帮我看一下,非常感谢! lorenz数据.txt (46.89 KB, 下载次数: 182)
发表于 2008-1-4 19:36 | 显示全部楼层

回复 #8 yufeiqun2008 的帖子

我的邮箱是153201909@qq.com
 楼主| 发表于 2008-1-4 22:24 | 显示全部楼层

回复 #10 anqikeli 的帖子

经过我的程序运行历时1小时20分得到如下结果:

[ 本帖最后由 yufeiqun2008 于 2008-1-4 22:28 编辑 ]

时域图

时域图

S_m_t

S_m_t

St

St

S_cor

S_cor

dS_t

dS_t
 楼主| 发表于 2008-1-4 22:35 | 显示全部楼层

回复 #11 yufeiqun2008 的帖子

从Smt和dS_t可以看出t=10处存在一个局部最小值点,此即延迟时间

而S_cor最小点在t=184处,此处值为0.0049

t=193处,S_cor=0.0082;
t=177处S_cor=0.0078;
t=146,处S_cor=0.0114;

基本上这几个点的值都很接近零点,按照书上方法,以及CC算法最初论文,不好判断延迟窗口,建议采取与别的方法结合的方法
我的邮箱yufeiqun2004@yahoo.com.cn

[ 本帖最后由 yufeiqun2008 于 2008-1-4 22:47 编辑 ]
发表于 2008-1-5 13:44 | 显示全部楼层

回复 #12 yufeiqun2008 的帖子

子序列相空间重构的时候,M=N-(m-1),好像t一直应该取1,我修改了一下,得出的图和你的差不多,但延迟和嵌入维数还是不知道怎么确定,难道CC算法确定不了延迟时间和嵌入维数吗?必须再找别的方法?
我在一篇文章里找到的说法是:如果dS_t的局部最小值点为t1,  S_cor的为t2,  那么m=t2/t1+1,不过忘记在哪看的了
 楼主| 发表于 2008-1-5 15:39 | 显示全部楼层

回复 #13 anqikeli 的帖子

就我的理解,延迟时间需要结合S_m_t图以及dS_t图,寻找dS_t图第一个极小值点,该极小值点对应t就是时间延迟

而嵌入维数则是通过S_cor的最小值判断的,计算方式确实采用你所介绍的公式,但做了几个例子,效果不是很好
发表于 2008-3-20 15:18 | 显示全部楼层

回复 #8 yufeiqun2008 的帖子

yufeiqun2008的延迟时间的图画的挺好,能不能把程序发上来共享一下,谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-29 00:35 , Processed in 0.082290 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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