Navigation

Operators and Keywords

Function List:

C++ API

Function File: [olens, orbit_data, acc, stab] = upo (X, m)
Function File: … = upo (X, m, paramName, paramValue, …)

Locates unstable periodic points.

Note: This function provides a wrapper for the original upo from TISEAN. The documentation to TISEAN states that upo has not been tested thoroughly and therefore might contain errors. Since this function only provides a wrapper for the TISEAN upo any such errors will be inherited. For more information consult the TISEAN documentation: http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/docs/docs_f/upo.html

Inputs

X

Must be realvector. If it is a row vector then the output will be row vectors as well. Maximum length is 1e6. This constraint existed in the TISEAN program and therefore it is inherited. This should not be a problem as this program takes 9 seconds for a 10000 element long noisy henon series.

m

Embedding dimension. Must be scalar positive integer.

Parameters

Either r or v must be set and at least one must be different from zero.

r

Absolute kernel bandwidth. Must be a scalar.

v

Same as fraction of standard deviation.

mtp

Minimum separation of trial points [default = value of ’r’ OR std(data) * value of ’v’].

mdo

Minimum separation of distinct orbits [default = value of ’r’ OR std(data) * value of ’v’].

s

Initial separation for stability [default = value of ’r’ OR std(data) * value of ’v’].

a

Maximum error of orbit to be plotted [default = all plotted].

p

Period of orbit [default = 1].

n

Number of trials [default = numel (X)].

Outputs

olens

A vector that contains the period lengths (sizes) for each orbit.

orbit_data

A vector that contains all of the orbit data. To find data for the n-the orbit you need to:

nth_orbit_data = orbit_data(sum(olens(1:n-1)).+(1:olens(n)));

acc

A vector that contains the accuracy of each orbit.

stab

A vector that contains the stability of each orbit.

Note that

length (olens) == length (acc) == length (stab) #== number of orbits.

See also: demo upo, upoembed.

Algorithms

The algorithms for this functions have been taken from the TISEAN package.

Demonstration 1

The following code

 hen    = henon (1000);
 # The following line is equvalent to 'addnoise -v0.1 hen' from TISEAN
 hen    = hen + std (hen) * 0.1 .* (-6 + sum (rand ([size(hen), 12]), 3));
 hendel = delay (hen(:,1));
 [olens, odata] = upo(hen(:,1), 2, 'p',6,'v',0.1, 'n', 100);
 up    = upoembed (olens, odata, 1);
 plot (hendel(:,1), hendel(:,2), 'r.', 'markersize',2, ...
       up{4}(:,1), up{4}(:,2),'gx','markersize',20,'linewidth',1, ...
       up{3}(:,1), up{3}(:,2),'b+','markersize',20,'linewidth',1, ...
       up{2}(:,1), up{2}(:,2),'ms','markersize',20,'linewidth',1, ...
       up{1}(:,1), up{1}(:,2),'ws','markerfacecolor', 'c', 'markersize',20);
 legend ('Noisy Henon', 'Fixed Point','Period 2', 'Period 6', 'Period 6');
 axis tight

Produces the following figure

Figure 1

Package: tisean