logo资料库

matlab实现关联维算法.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
一、实验题目:matlab 实现关联维算法 二、实验内容:关联维算法 三、实验要求: (1)取 m=4、8、10、20、25, (2)取=3,应用时间序列重构一个 m 维相空间, (3)取 r=1:1:5,即:从 1 变化到 5,步长为 1, (4)计算 C2, mrC ,( )  *1 N 2 N  (  1  , ji r  X i X  j ( j i  ) (5) 重复步骤 2)到 4), (6)当 m 增大到 25 时计算时,在 ln 2 mrC ,( )  图里表现为曲线的直线部分的斜率 ln r 不再随 m 的变化而变化,此时 D2 即是所求的吸引子的关联维。 四、实验过程: M=dlmread('C:\Users\xiaoyu\Desktop\my.txt'); data=M(1:2000,2); [k,i]=min(data); data=data-k; m=4;t=3; N=2000-(m-1)*t; D=zeros(m,N); for j=1:N for i=1:m D(i,j)=data((i-1)*t+j); end end for r=1:5 sum=0; for i=1:N-1 for j=i+1:N d=norm((D(:,i)-D(:,j)),inf); if r>d theta=1; else theta=0; end sum=sum+theta;
end end C1(r)=2*sum/(N*N); end x=log(1:5) y=log(C1) figure plot(x,y,'-*') hold on m=8;t=3; N=2000-(m-1)*t; D=zeros(m,N); for j=1:N for i=1:m end end D(i,j)=data((i-1)*t+j); for r=1:5 sum=0; for i=1:N-1 for j=i+1:N d=norm((D(:,i)-D(:,j)),inf); if r>d theta=1; else theta=0; end sum=sum+theta; end end C2(r)=2*sum/(N*N); end x=log(1:5); y=log(C2); plot(x,y) hold on m=10;t=3; N=2000-(m-1)*t; D=zeros(m,N); for j=1:N for i=1:m 2
D(i,j)=data((i-1)*t+j); end end for r=1:5 sum=0; for i=1:N-1 for j=i+1:N d=norm((D(:,i)-D(:,j)),inf); if r>d theta=1; else theta=0; end sum=sum+theta; end end C3(r)=2*sum/(N*N); end x=log(1:5); y=log(C3); plot(x,y) hold on m=20;t=3; N=2000-(m-1)*t; D=zeros(m,N); for j=1:N for i=1:m end end D(i,j)=data((i-1)*t+j); for r=1:5 sum=0; for i=1:N-1 for j=i+1:N d=norm((D(:,i)-D(:,j)),inf); if r>d theta=1; else theta=0; end sum=sum+theta; 3
end end C4(r)=2*sum/(N*N); end x=log(1:5); y=log(C4); plot(x,y) hold on m=25;t=3; N=2000-(m-1)*t; D=zeros(m,N); for j=1:N for i=1:m end end D(i,j)=data((i-1)*t+j); for r=1:5 sum=0; for i=1:N-1 for j=i+1:N d=norm((D(:,i)-D(:,j)),inf); if r>d theta=1; else theta=0; end sum=sum+theta; end end C5(r)=2*sum/(N*N); end x=log(1:5); y=log(C5); plot(x,y) D2=(y(2)-y(1))/(x(2)-x(1)) 4
结果: D2 =0.0330 0 -0.005 -0.01 -0.015 -0.02 -0.025 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 5
分享到:
收藏