winterdij 发表于 2007-9-4 16:31

回复 #15 sssssxxxxx921 的帖子

我用Logistic和Lorenz做了,都正确,程序也是我从Chaos Toolbox Ver.2.0工具箱里找的,我认为没有问题。

octopussheng 发表于 2007-9-4 19:30

如果实在不行的话可以先试算一下,应该会有收敛解的!

sssssxxxxx921 发表于 2007-9-4 21:51

回复 #16 winterdij 的帖子

能把你验算的例子给我发一下吗,我总和书上的结果错很多

sssssxxxxx921 发表于 2007-9-4 21:52

我的邮箱ssssxxxx921@sohu.com

winterdij 发表于 2007-9-5 10:30

回复 #19 sssssxxxxx921 的帖子

我已经给你发过去了,请查收。

sssssxxxxx921 发表于 2007-9-5 16:09

回复 #20 winterdij 的帖子

谢谢我已收到
只不过为什么我做出来的都是直线   用你的程序你数据也不好使以下是我用你的数据(WORD中第一个你自己的数据)做的

sssssxxxxx921 发表于 2007-9-5 16:12

为什么会出现这种情况了   很是郁闷
其中洛仑兹系统是按其他论文上取50001----53000点做的    结果和那上边的图错十万八千里

sssssxxxxx921 发表于 2007-9-5 19:50

根据你的数据我又算了一遍,怎么图和你的一样数据却不对呢
Warning: Divide by zero.
> In correlation_integral at 19
In C_CMethod at 47
ans =
Columns 1 through 8
    0.0386   -0.0086   -0.0325   -0.0382   -0.0340       NaN       NaN       NaN
Columns 9 through 16
       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN
Columns 17 through 20
       NaN       NaN       NaN       NaN
上面就是我的结果,   怎么会出现被 0 除呢,我相信你的也出现了吧你是怎么解决的或怎么认为
应该不是数据少的原因吧

winterdij 发表于 2007-9-6 11:06

回复 #23 sssssxxxxx921 的帖子

你是用的我的程序吗?我的程序输出是delt_s    s_cor
NaN我一开始也不知道怎么回事,后来看网上的各种说法,我认为是数据计算精度的问题,数据溢出了,这是我为什么选max_d=20的原因,因为20和200得出的图是一样的,后面的数据全都溢出了。
顺便问你一下,有没有预测时间序列用的matlab程序,如果有给我一份可以吗?谢谢了

sssssxxxxx921 发表于 2007-9-8 20:28

回复 #24 winterdij 的帖子

第一我对比了你的程序和我的程序没什么不一样   而且试了三次洛仑兹系统的时间延迟均为6
    和陆振波还有一片外文中的时间延迟11是不一致的   不知道你的时间延迟结果是什么是否一致
第二调整了程序中的一个小错误后 我在计算到200中间最后只出现 一个NAN 在45处
第三我没有预测时间序列用的程序   有幸找到的话会告诉你的

sssssxxxxx921 发表于 2007-9-8 22:47

我又看了你的文档,你的洛仑兹系统的结果我不知道和谁进行了验证,怎么认为是可靠的,你那结果我也出来了而且不会出现 NAN 的中间信息   请自己检查一下是不是正确可靠

winterdij 发表于 2007-9-10 15:07

回复 #26 sssssxxxxx921 的帖子

1.首先非常感谢你对我的帮助,我也看了你在《请教 关于CC方法中max_d的设置》这个帖子里的评论,我也非常支持你的想法,希望大家一起努力能够解决这个问题。

2.我在发给你的程序里计算出的Lorenz时间序列蓝线最小是3,Logistic的时间序列蓝线最小是2.
我的对比数据来自ChaosToolbox1.0_trial_matlab6.5中文件夹LargestLyapunov_Rosenstein中的两个程序。
Lorenz 混沌时间序列来自Main_LargestLyapunov_Rosenstein2.m,其中有段程序如下:
% 产生 Lorenz 混沌时间序列

sigma = 16;             % Lorenz 方程参数 a
b = 4;                  %               b
r = 45.92;            %               c            

y = [-1,0,1];         % 起始点 (1 x 3 的行向量)
h = 0.01;               % 积分时间步长

k1 = 30000;             % 前面的迭代点数
k2 = 6000;            % 后面的迭代点数

z = LorenzData(y,h,k1+k2,sigma,r,b);
x = z(k1+1:end,1);      % 时间序列

%-----------------------------------------------------------------
% Lorenz 入口参数

tau = 10;               % 时延
m = 3;                  % 嵌入维
taumax = 300;         % 最大离散步进时间
P = 100;               % 序列平均周期
fs = 1/h;               % 采样频率

Logistic 混沌时间序列来自Main_LargestLyapunov_Rosenstein1.m,其中有段程序如下:
% 产生 Logistic 混沌时间序列

lambda = 4;

k1 = 10000;             % 前面的迭代点数
k2 = 10000;             % 后面的迭代点数
x0 = rand(1);

x = zeros(k1+k2,1);
for i = 1:k1+k2
    x0 = lambda*x0*(1-x0);
    x(i) = x0;
end
x = x(k1+1:end);

%-----------------------------------------------------------------
% Logistic 入口参数

tau = 1;                % 时延
m = 2;                  % 嵌入维
taumax = 30;            % 最大离散步进时间
P = 100;                % 序列平均周期
fs = 1;               % 采样频率


我发现cc方法计算出的蓝线最小点和嵌入维数是相同的,是否蓝线最小点对应的应该是嵌入维数呢??


3.最后,你是否能够把你的程序发给我一份,让我研究一下呢?
我的邮箱:winterdij@163.com

sssssxxxxx921 发表于 2007-9-10 16:28

回复 #27 winterdij 的帖子

你说的第一个最小点我也看到了是3,第一条线的第一个零点应该是6,第三条星线最小值我好像记得是21,这明显与我看到的两篇文献不符,和那上边的图也是差很多
第二先弄好了时间延迟再说嵌入维数吧,因为嵌入维数理论上C-C方法就可以确定,但我看他们的论文也是不太符合,等弄出时间延迟,再对比G-P算法得出来的结果、参考资料结果    几个结果对应着看看哪个更适合一些

sssssxxxxx921 发表于 2007-9-10 21:45

忘了和你说了已发送你的邮箱请注意查收

winterdij 发表于 2007-9-11 09:51

回复 #29 sssssxxxxx921 的帖子

你的程序,我这无法运行,是因为de45('Lorenz',t_span,y0);运行错误,
现在真的是很困难啊,初稿10月就要交了,现在卡在这里,真是困难。
我今天想是否可以使用G_P算法,计算关联维数,在用其他方法反算时间延迟和嵌入维数,从而进行验证啊?
页: 1 [2] 3 4 5
查看完整版本: 疑问:关于CC 方法计算时间延迟和嵌入维数