malong 发表于 2006-12-11 19:09

求助 分形维函数中的参数 ss甚么意思 如何选取

function =G_P(data,N,tau,min_m,max_m,ss)
% the function is used to calculate correlation dimention with G-P algorithm
% data:the time series
% N: the length of the time series       %时间序列的长度
% tau: the time delay                        %时间间隔,是采样时间t的整数倍
% min_m:the least embedded dimention m   % 最小嵌入维数
% max_m:the largest embedded dimention m   % 最大 嵌入维数
% ss:the stepsize of r
%skyhawk

gghhjj 发表于 2006-12-16 08:31

你找G_P算法的资料看一下就很清楚了

luorlnwe 发表于 2007-3-30 14:20

同样的问题不明白~~能不能详细说一下~~

gghhjj 发表于 2007-4-16 04:49

G-P算法计算时间序列关联维数的C程序
该程序转载于《分形与混沌——blog》
再次声明是转载
为了自己的学习,记录别人的好的东东,对true7742表示感谢!

#include "mex.h"
#include "math.h"
/*****************************************************************
*data:the time series
*r: the r series
*N: the length of the time series
*delay : the delay of the time series
*rlen: the length of r series
*ln_C: the correlation dimention series
******************************************************************/
void G_P(double data[], double r[], int N, int m,
   int rlen, int delay, double ln_C[],double ln_r[])
{
double distance;
double max=0;
int cr=0;
int i,j,k,l;
double Cr=0;
int M=N-(m-1)*delay;
for (l=0; l<rlen; l++)
{
   for (i=0; i<M-1; i++)
{
      for (j=i+1; j<M; j++)
   {
       for (k=0; k<m; k++)
    {
    distance = fabs(data-data);
    if (distance>max)
   max = distance;
    }
       if (r>=max)
      cr++;
       max = 0;
   }
}
Cr = cr*2.0/(M*(M-1));
cr = 0;
      ln_C = log(Cr);
      ln_r = log(r);
}
}
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double *data;
double *r;
int m;
int delay;
double *ln_C;
double *ln_r;
int datalen,rlen;
if (nrhs!=4)
mexErrMsgTxt("Four inputs required!");
else if (nlhs>2)
mexErrMsgTxt("Too many output arguments!");
datalen = mxGetN(prhs);
rlen = mxGetN(prhs);
m = mxGetScalar(prhs);
delay = mxGetScalar(prhs);
    //define the two output arguments
plhs = mxCreateDoubleMatrix(1,rlen,mxREAL);
plhs = mxCreateDoubleMatrix(1,rlen,mxREAL);
data = mxGetPr(prhs);
r = mxGetPr(prhs);
ln_C = mxGetPr(plhs);
ln_r = mxGetPr(plhs);
G_P(data,r,datalen,m,rlen,delay,ln_C,ln_r);
}

看了上面的代码,我想大家应该就清楚了,其中rlen就是大家上面提到的SS
页: [1]
查看完整版本: 求助 分形维函数中的参数 ss甚么意思 如何选取