Editing TISEAN package
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
== Porting TISEAN == | == Porting TISEAN == | ||
This section | This section will focus on demonstrating the capabilities of the TISEAN package. The previous information about the porting procedure has been moved [[TISEAN_package:Procedure|here]]. | ||
== Tutorials == | == Tutorials == | ||
Line 9: | Line 10: | ||
Please download it as the tutorial will reference it. | Please download it as the tutorial will reference it. | ||
=== False Nearest Neighbors === | === False Nearest Neighbors === | ||
This function uses a method to determine the minimum sufficient embedding dimension | This function uses a method to determine the minimum sufficient embedding dimension. As a demonstration we will create a plot that contains an Ikeda Map, a Henon Map and a Henon Map corrupted by 10% of Gaussian noise. | ||
{{Code|Analyzing false nearest neighbors|<syntaxhighlight lang="octave" style="font-size:13px"> | {{Code|Analyzing false nearest neighbors|<syntaxhighlight lang="octave" style="font-size:13px"> | ||
# Create maps | # Create maps | ||
Line 19: | Line 20: | ||
[dim_hen, frac_hen] = false_nearest (hen(:,1)); | [dim_hen, frac_hen] = false_nearest (hen(:,1)); | ||
[dim_hen_noisy, frac_hen_noisy] = false_nearest (hen_noisy(:,1)); | [dim_hen_noisy, frac_hen_noisy] = false_nearest (hen_noisy(:,1)); | ||
plot (dim_ikd, frac_ikd, '-b* | plot (dim_ikd, frac_ikd, '-b*', 'markersize', 15,... | ||
dim_hen, frac_hen, '-r+ | dim_hen, frac_hen, '-r+', 'markersize', 15,... | ||
dim_hen_noisy, frac_hen_noisy, '-gx | dim_hen_noisy, frac_hen_noisy, '-gx', 'markersize', 15); | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
From this chart we can conclude the sufficient embedding dimension for each system. For a Henon Map {{Codeline|m = 2}} is sufficient, but for an Ikeda map it is better to use {{Codeline|m = 3}}. | |||
# | |||
=== Nonlinear Prediction === | === Nonlinear Prediction === | ||
In this section we will demonstrate some functions from the 'Nonlinear Prediction' chapter of the TISEAN documentation (located [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/docs/chaospaper/node16.html#SECTION00050000000000000000 here]). For now this section will only demonstrate functions that are connected to the [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/docs/chaospaper/node18.html#SECTION00052000000000000000 Simple Nonlinear Prediction] section. <br/> | In this section we will demonstrate some functions from the 'Nonlinear Prediction' chapter of the TISEAN documentation (located [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/docs/chaospaper/node16.html#SECTION00050000000000000000 here]). For now this section will only demonstrate functions that are connected to the [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/docs/chaospaper/node18.html#SECTION00052000000000000000 Simple Nonlinear Prediction] section. <br/> | ||
There are three functions in this section: {{Codeline|lzo_test}}, {{Codeline|lzo_gm}} and {{Codeline|lzo_run}}. The first is used to estimate the forecast error for a set of chosen parameters, the second gives some global information about the fit and the third produces predicted points. Let us start with the first one (before starting this example remember to download 'amplitude.dat' from above and start Octave in the directory that contains it). The pairs of parameters {{Codeline|(m,d)}} where chosen after the TISEAN documentation. | There are three functions in this section: {{Codeline|lzo_test}}, {{Codeline|lzo_gm}} and {{Codeline|lzo_run}}. The first is used to estimate the forecast error for a set of chosen parameters, the second gives the some global information about the fit and the third produces predicted points. Let us start with the first one (before completing starting this example remember to download 'amplitude.dat' from above and start Octave in the directory that contains it). The pairs of parameters {{Codeline|(m,d)}} where chosen after the TISEAN documentation. | ||
{{Code|Analyzing forecast errors for various parameters|<syntaxhighlight lang="octave" style="font-size:13px"> | {{Code|Analyzing forecast errors for various parameters|<syntaxhighlight lang="octave" style="font-size:13px"> | ||
# Load data | # Load data | ||
Line 67: | Line 42: | ||
res4(:,1), res4(:,2), 'm;m = 4, d = 6;'); | res4(:,1), res4(:,2), 'm;m = 4, d = 6;'); | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
It seems that the last pair {{Codeline|(m = 4, d = 6)}} is suitable. We will use it to determine the the best neighborhood to use when generating future points. | It seems that the last pair {{Codeline|(m = 4, d = 6)}} is suitable. We will use it to determine the the best neighborhood to use when generating future points. | ||
{{Code|Determining the best neighborhood size using lzo_gm|<syntaxhighlight lang="octave" style="font-size:13px"> | {{Code|Determining the best neighborhood size using lzo_gm|<syntaxhighlight lang="octave" style="font-size:13px"> | ||
Line 83: | Line 56: | ||
forecast_noisy, 'bo;Forecast Data with 10% Dynamic Noise;'); | forecast_noisy, 'bo;Forecast Data with 10% Dynamic Noise;'); | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
The difference between finding the proper {{Codeline|r}} and not finding it can be very small. <br/> | The difference between finding the proper {{Codeline|r}} and not finding it can be very small. <br/> | ||
The produced data is the best local zeroth order fit on the {{Codeline|amplitude.dat}} for {{Codeline|(m = 4, d = 6)}}. | The produced data is the best local zeroth order fit on the {{Codeline|amplitude.dat}} for {{Codeline|(m = 4, d = 6)}}. | ||
Line 106: | Line 77: | ||
delay_clean(:,1), delay_clean(:,2), 'r.;Clean Data;','markersize',3) | delay_clean(:,1), delay_clean(:,2), 'r.;Clean Data;','markersize',3) | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
On the chart created the red dots represent cleaned up data. It is much closer to the original than the noisy blue set.<br/> | On the chart created the red dots represent cleaned up data. It is much closer to the original than the noisy blue set.<br/> | ||
Now we will do the same with {{Codeline|ghkss}}. | Now we will do the same with {{Codeline|ghkss}}. | ||
Line 115: | Line 84: | ||
The rest of the code is the same as the code used in the {{Codeline|lazy}} example. <br/> | The rest of the code is the same as the code used in the {{Codeline|lazy}} example. <br/> | ||
Once both results are compared it is quite obvious that for this particular example {{Codeline|ghkss}} is superior to {{Codeline|lazy}}. The TISEAN documentation points out that this is not always the case. | Once both results are compared it is quite obvious that for this particular example {{Codeline|ghkss}} is superior to {{Codeline|lazy}}. The TISEAN documentation points out that this is not always the case. | ||
[[ | [[Category:Octave-Forge]] | ||
== External links == | == External links == | ||
* [https://bitbucket.org/josiah425/tisean Bitbucket repository ] where the porting is taking place. | * [https://bitbucket.org/josiah425/tisean Bitbucket repository ] where the porting is taking place. | ||
* [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/ TISEAN package website] where the package is described along with references to literature, tutorials and manuals. | * [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/ TISEAN package website] where the package is described along with references to literature, tutorials and manuals. | ||