原来是小飞 发表于 2013-12-3 09:03

G-P算法中的拟合代码问题

使用G-P算法算出了lnc、lnr图,但是不会进行拟合,无法求出关联维数。请热心人帮忙看下,能有拟合的代码更好,希望有人能够指点一二。本人新手,谢谢。
代码如下:
data=load('example.txt');
N=length(data);
tau=6;
min_m=2;
max_m=10;
ss=20;
for m=min_m:max_m
    Y=reconstitution(data,N,m,tau);%重构相空间Y
    M=N-(m-1)*tau;%重构相空间中的嵌入点数
    %
    for i=1:M-1
      for j=i+1:M
            d(i,j)=max(abs(Y(:,i)-Y(:,j)));%计算相点Y(i)和Y(j)的距离         
      end                              %j>M 循环结束
    end
    max_d=max(max(d));%the max distance of all points
    d(1,1)=max_d;
    min_d=min(min(d));%the min distance of all points
    delt=(max_d-min_d)/ss;%the stepsize of r
    for k=1:ss
      r=min_d+k*delt;
      C(k)=correlation_integral(Y,M,r);%计算关联积分
      ln_C(m,k)=log(C(k));%求lnC(r)
      ln_r(m,k)=log(r);%求lnr
      fprintf('%d/%d/%d/%d\n',k,ss,m,max_m);
    end
    plot(ln_r(m,:),ln_C(m,:));
    hold on;
end
fid=fopen('lnr.txt','w');%打开lnr.txt,'w'表示对打开的文件写数据
fprintf(fid,'%6.2f %6.2f\n',ln_r);%将矩阵ln_r的列向量以浮点格式%6.2f %6.2f\n写入到文本文件lnr.txt
fclose(fid);%关闭文件
fid = fopen('lnC.txt','w');%打开lnC.txt,'w'表示对打开的文件写数据
fprintf(fid,'%6.2f %6.2f\n',ln_C);%将矩阵ln_C的列向量以浮点格式%6.2f %6.2f\n写入到文本文件lnc.txt
fclose(fid);%关闭文件
grid on;
数据:图片如下:



页: [1]
查看完整版本: G-P算法中的拟合代码问题