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
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.
Embedding dimension. Must be scalar positive integer.
Parameters
Either r or v must be set and at least one must be different from zero.
Absolute kernel bandwidth. Must be a scalar.
Same as fraction of standard deviation.
Minimum separation of trial points [default = value of ’r’ OR std(data) * value of ’v’].
Minimum separation of distinct orbits [default = value of ’r’ OR std(data) * value of ’v’].
Initial separation for stability [default = value of ’r’ OR std(data) * value of ’v’].
Maximum error of orbit to be plotted [default = all plotted].
Period of orbit [default = 1].
Number of trials [default = numel (X)].
Outputs
A vector that contains the period lengths (sizes) for each orbit.
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)));
A vector that contains the accuracy of each orbit.
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.
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