This program calculates the maximum likelihood estimator (the Takens’ estimator) from correlation sums of the output of d2 (the ’c2’ field of the d2 output) or c1 (the ’c1’ field of c1 output).
The estimator is calculated using the following equation (the integral is computed for the discrete values of C(r) by assuming an exact power law between the available points):
C(r) D (r) = ------------ T /r C(x) | dx ---- /0 x
Input
The input needs to be the output of d2 or c1.
Output
The output is a struct array of the same length as the input. It contains the following fiels:
The dimension for each matrix t.
Matrix with two columns. The first contains epsilon (the first column of field ’c2’ from d2 output or field ’c1’ from c1 output) and the second is the maximum likelihood estimator (Takens’ estimator).
See also: demo c2t, d2, c1, c2g, av_d2.
Algorithms
The algorithms for this functions have been taken from the TISEAN package.
The following code
vals = d2 (henon (1000), 'd', 1, 't', 50, 'm', 5); takens = c2t (vals); do_plot_slope = @(x) semilogx (x{1}(:,1),x{1}(:,2),'r'); hold on arrayfun (do_plot_slope, {takens.t}); hold off axis tight ylim ([0 3]); xlabel ("Epsilon") title ("Takens' Estimator");
Produces the following figure
Figure 1 |
---|
Package: tisean