Hello,

We have been trying to reproduce the cumulative histograms of diagonal lines shown in figures 26a and 27 from the paper "Recurrence plots for the analysis of complex systems". We have been using command line RP code found on this website to run the Rossler system using the parameters appropriate for those two figures. We find a very steep portion near the start of the graph which is not present in the figures mentioned above. We thought that these regions could be eliminated by using the -l <number> option in the rp code, but this has no discernible effect on the histograms. This feature also appears to be unrelated to the two scaling regions in the paper. Could it be that even though we are using 3 components of the rossler system, only one is being used by the program? There are no sample data on the website showing the format for the data which can be correctly read into the rp code.

Please find attached our plot for figure 26a, with epsilon=1.0, without embedding for the full xyz. Oops, lokks like server cannot accept upload. I can send this privately if you like.

We find the recurrence software a very useful resource

Kind regards,

Scott.

## commandline software

- Norbert
- Expert
**Posts:**196**Joined:**Wed Jan 4, 2006 11:03**Affiliation (Univ., Inst., Dept.):**Potsdam Institute for Climate Impact Research, Germany**Location:**Potsdam, Germany**Location:**Potsdam Institute for Climate Impact Research, Germany

### Re: commandline software

The figures 26a and 27 are calculated by using all 3 components of the Roessler system. The data should be in ASCII format, 3 columns, when using the commandline RP software. You can check whether the software has read the data correctly by the output:

Output:
BTW: The histogram will include all lines, thus, the option

Here is some Matlab code to reproduce the results of the figures. It is also using the commandline RP software.
Output:
Some code for Fig. 27:
You will need the file
However, I have just realised that in Fig 27 the two curves are exchanged: c=30 is the solid one and c=9 the dashed one.

Code: Select all

`./rp_x86_64i -n MAX -w 2 -i roessler -c -p roessler_hist -e 0.862`

Code: Select all

```
Used file: roessler (30003 data points in 3 columns read).
```

*-l*will not work here. This option is only for the RQA measures.Here is some Matlab code to reproduce the results of the figures. It is also using the commandline RP software.

Code: Select all

```
%% Line length distribution for Roessler
% Fig. 26A
clear
options=odeset('initialstep',.01,'MaxStep',.1);
% sampling time difference is 0.2
time=0:.2:2050;
% integrate Roessler system
% roessler_abc = [0.2 0.2 5.7];
[t, x]=ode45('roessler',time,[0.1 0.4 0.3],options);
% save data as 3-column vector, ASCII file
x1 = x(251:end,:); save roessler x1 -ascii -tabs
% calculate the recurrence plot and cumulatove line length distribution
% using commandline RP tool
clear, e = 0.862
unix(['./rp_x86_64i -n MAX -w 2 -i roessler -c -p roessler_hist -e ',num2str(e)]);
% load histogram into Matlab
h=load(['roessler_hist']); p = h(:,2);
% plot the histogram
clf
semilogy(1:200,p(1:200,1:4:end),'k'), xlim([1 200])
xlabel('Length l (units)'), ylabel('Total number')
set(gca,'xtick',[0:50:200],'xtickl',[0:50:200]), ylim([1e1 1e8])
```

Code: Select all

```
./rp_x86_64i -n MAX -w 2 -i roessler -c -p roessler_hist -e 0.862
Used file: roessler (30003 data points in 3 columns read).
Used parameters: embedding dimension m = 1
embedding delay t = 1
recurrence threshold e = 0.862
Theiler window w = 2
minimal diagonal line l_min = 2
minimal vertical line v_min = 2
maximum norm used
Calculate recurrence points% a=.2; % periodic
% b=.7;
% c=3.6;
|******************************| 100%
Computation time: 0 min 2 sec
Recurrence quantification analysis:
RR: 0.009573
DET: 0.9717 LAM: 0.522
DET/RR: 101.5 LAM/DET: 0.5372 W_prob: 87
L_max: 404 V_max: 4 W_max: 5241
L_mean: 14.02 TT: 2.255 W_mean: 140.9
L_entr: 3.048 V_entr: 0.6153 W_entr: 3.26
DIV: 0.002475 T1: 101.9 F_min: 0.0001908
T2: 144.2
```

Code: Select all

```
%% Line length distribution for Roessler
% Fig. 27
% integrate Roessler system
clear,options=odeset('initialstep',.01,'MaxStep',.1);
% sampling time difference is 0.2
time=0:.2:2050;
% Roessler with C = 9
roessler_abc = [0.1 0.1 9];
[t, x]=ode45('roessler',time,[0.1 0.4 0.3],options,roessler_abc);
% save data as 3-column vector, ASCII file
x1 = x(251:end,:); save roessler9 x1 -ascii -tabs
% Roessler with C = 30
roessler_abc = [0.1 0.1 30];
[t, x]=ode45('roessler',time,[0.1 0.4 0.3],options,roessler_abc);
% save data as 3-column vector, ASCII file
x1 = x(251:end,:); save roessler30 x1 -ascii -tabs
clear, e = 2;
unix(['./rp_x86_64i -s -n MAX -w 2 -i roessler30 -c -p roessler_hist -e ',num2str(e)]);
h=load(['roessler_hist']);
p(:,1) = h(:,2);
unix(['./rp_x86_64i -s -n MAX -w 2 -i roessler9 -c -p roessler_hist -e ',num2str(e)]);
h=load(['roessler_hist']);
p(:,2) = h(:,2);
clf
semilogy(.2*(6:200),p(6:200,1),'k--'), hold on
semilogy(.2*(6:200),p(6:200,2),'k-')
xlabel('Length l (s)'), ylabel('Total number')
yl = ylim;line([12 12],yl,'linestyle',':','color',[0 0 0])
line([24.8 24.8],yl,'linestyle',':','color',[0 0 0])
```

*roessler.m*for integrating the Roessler system:Code: Select all

```
function dy=roessler(t,y, dummy, abc)
dy=zeros(3,1);
if nargin < 4
a=.2;
b=.2;
c=5.7;
else
a = abc(1);
b = abc(2);
c = abc(3);
end
dy(1)=-y(2)-y(3);
dy(2)=y(1)+a*y(2);
dy(3)=b+y(3)*(y(1)-c);
```