问题解决后的心得
对于存在的疑问,经过对时间序列分析的进一步了解,现在终于明白了,对一个混沌系统,如Lorenz系统,时间序列样本选取不同,得到的时延和时延窗是有差异的,具体情况可以见下表,这是对Lorenz的计算结果。为了考查时间序列样本对算法的影响,选取不同区域、含有不同数量点的时间序列,进行时延 和时延窗的计算,具体结果见表3.1。可以看到对不同的样本区间,由自相关法的到的时延波动很大,而由互信息法和C-C方法确定的时延比较稳定,这说明至少对于Lorenz系统,互信息法和C-C方法要优于自相关法。
C-C方法可以同时计算出时间延迟和最佳嵌入维,但是通过表3.1的结果我们发现,由C-C方法得到的嵌入维随着样本区间不同而变动很大,而对于一个经典的混沌系统,其最佳嵌入维是确定的,因此直接以C-C方法得出的嵌入维作为最佳嵌入维是不合理的,但C-C方法在确定时延时仍不失为一个好的方法。
观点相同
我同样验证了几个,和16楼的结果是一样的存在的问题
我利用上面的程序计算了一下,怎么没出来结果?并且错误还挺多的。请问一下:在用这个程序的时候需要进行什么处理吗?谢谢回复 18楼 huii 的帖子
你参考一下后面的重新整理了的程序,这个程序是没有问题的 几年前的好帖啊,顶~感谢楼主~ 感谢楼主的分享,此贴真是好贴!
用5楼的程序分析Lorenz方程,当系统参数a=16,b=4.0,c=45.92以及a=10,b=28,c=8/3时,计算结果与楼主完全一致。
楼主提到,当a=10,b=28,c=8/3时,计算结果与论文中相差很大,我认为是论文中参数书写有误,参数应该为a=10,b=8/3,c=28,此时计算结果为tau_inf =17,tw_inf =165,时间延迟与论文中18相差很小。见下图。
并且,参数为a=10,b=8/3,c=28时,我用陆振波的混沌工具箱进行了验证,结果为tau_inf =18,tw_inf =165。时间延迟与论文中完全一致。
5楼的程序存在一点小问题。
1、Scmean=zeros(1,max_d);应该改为Sdeltmean=zeros(1,max_d);
2、需要添加重构相空间的子函数,即1楼中function Data=reconstitution(data,N,m,tau)。
3、将代码复制到m文件中可能会出现一些大小写变化的问题,稍微修改就行。 对于16楼楼主做出的结论,在《混沌时间序列及其应用》这本书中的第66-67,以及71也可以找到依据。由66-67页可以自相关函数求时间延迟仅适用于小数据组、但是不适合非线性问题。而互信息法适用于大数据组、非线性问题。混沌时间序列具有非线性,因此自相关法与互信息法相比,用互信息计算混沌时间序列更可靠。
71页CC法的特点是与互信息法一致, 目前嵌入维数的主要计算方法是采用Grassberger和Procaccia提出的G-P算法计算出序列的关联维数d,然后利用嵌入维数m>=2d+1,选取合适的嵌入维数。看该贴Lyapunov指数程序对比 wystar 发表于 2014-8-25 14:40
目前嵌入维数的主要计算方法是采用Grassberger和Procaccia提出的G-P算法计算出序列的关联维数d,然后利用 ...
童鞋,你好^_^ 首先谢谢你热心的一系列解答,然后,请问一下,在程序中嵌入维数m取的是2-5,但是由程序最终确定的最佳延迟时间tau和时间窗口tw所确定的最佳嵌入维数都是十几。。。程序中嵌入维数m范围不同也会影响程序结果吧~~~这该如何解释呢?
另外,,楼主在16楼所提到的互信息求解tau的方法你用了么。。在另一帖子楼主给出了用互信息求解最佳tau的程序。。但是我用给出的方法得到的最佳延迟时间都为程序开始所设置的max_tau,这个问题已经在一个帖子中回复过你,,,望指点。。。刚入门这部分内容,理解的不够深刻,,希望能通过彼此交流使自己有茅塞顿开的感觉。。谢谢~~~~ 童鞋,你好^_^ 首先谢谢你热心的一系列解答,然后,请问一下,在程序中嵌入维数m取的是2-5,但是由程序最终确定的最佳延迟时间tau和时间窗口tw所确定的最佳嵌入维数都是十几。
1 你所说的第一个问题我也未研究,还是等高手解决吧;
2 互信息求解tau我用过,试过几个程序,结果与C-C法一致,你得到的最佳延迟时间都为程序开始所设置的max_tau肯定存在一定的问题,是否方法有误;
页:
1
[2]