Skip to content

Commit

Permalink
Aggregate documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions committed Jan 17, 2025
1 parent f13c815 commit 10a3a6f
Show file tree
Hide file tree
Showing 67 changed files with 1,832 additions and 41 deletions.
2 changes: 1 addition & 1 deletion chaostools/dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-18T09:22:19","documenter_version":"1.8.0"}}
{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2025-01-16T12:02:05","documenter_version":"1.8.0"}}
Binary file removed chaostools/dev/chaos_detection/0b9060de.png
Binary file not shown.
Binary file added chaostools/dev/chaos_detection/1f64145b.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed chaostools/dev/chaos_detection/a18ab825.png
Binary file not shown.
Binary file added chaostools/dev/chaos_detection/bffb9ad2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions chaostools/dev/chaos_detection/index.html

Large diffs are not rendered by default.

Binary file removed chaostools/dev/dimreduction/74378711.png
Binary file not shown.
Binary file added chaostools/dev/dimreduction/84db019b.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions chaostools/dev/dimreduction/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
\vdots & \vdots & \vdots & \vdots \\
x_{N-d+1} & x_{N-d+2} &\ldots & x_N
\end{array}
\right) = U\cdot S \cdot V^{tr}.\]</p><p>where <span>$x := s - \bar{s}$</span>. The columns of <span>$U$</span> can then be used as a new coordinate system, and by considering the values of the singular values <span>$S$</span> you can decide how many columns of <span>$U$</span> are "important".</p></div><a class="docs-sourcelink" href="https://github.com/JuliaDynamics/ChaosTools.jl/blob/a9b834cf10bf01d7ccc1ec1828214c53fa34e8a6/src/dimreduction/broomhead_king.jl#L7-L37" target="_blank">source</a></section></article><p>This alternative/improvement of the traditional delay coordinates can be a very powerful tool. An example where it shines is noisy data where there is the effect of superficial dimensions due to noise.</p><p>Take the following example where we produce noisy data from a system and then use Broomhead-King coordinates as an alternative to "vanilla" delay coordinates:</p><pre><code class="language-julia hljs">using ChaosTools, CairoMakie
\right) = U\cdot S \cdot V^{tr}.\]</p><p>where <span>$x := s - \bar{s}$</span>. The columns of <span>$U$</span> can then be used as a new coordinate system, and by considering the values of the singular values <span>$S$</span> you can decide how many columns of <span>$U$</span> are "important".</p></div><a class="docs-sourcelink" href="https://github.com/JuliaDynamics/ChaosTools.jl/blob/a7634b7bd083978ea3bfe3de89a62068dd92a49a/src/dimreduction/broomhead_king.jl#L7-L37" target="_blank">source</a></section></article><p>This alternative/improvement of the traditional delay coordinates can be a very powerful tool. An example where it shines is noisy data where there is the effect of superficial dimensions due to noise.</p><p>Take the following example where we produce noisy data from a system and then use Broomhead-King coordinates as an alternative to "vanilla" delay coordinates:</p><pre><code class="language-julia hljs">using ChaosTools, CairoMakie

function gissinger_rule(u, p, t)
μ, ν, Γ = p
Expand Down Expand Up @@ -33,5 +33,5 @@
R = embed(s, 3, estimate_delay(x, "mi_min"))
lines!(axs[2], columns(R)...)
axs[2].title = "2D embedding of s"
fig</code></pre><img alt="Example block output" src="74378711.png"/><p>we have used the same system as in the <a href="@ref">Delay Coordinates Embedding</a> example, and picked the optimal delay time of <code>τ = 30</code> (for same <code>Δt = 0.05</code>). Regardless, the vanilla delay coordinates is much worse than the Broomhead-King coordinates.</p><h2 id="DyCA-Dynamical-Component-Analysis"><a class="docs-heading-anchor" href="#DyCA-Dynamical-Component-Analysis">DyCA - Dynamical Component Analysis</a><a id="DyCA-Dynamical-Component-Analysis-1"></a><a class="docs-heading-anchor-permalink" href="#DyCA-Dynamical-Component-Analysis" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" href="#ChaosTools.dyca" id="ChaosTools.dyca"><code>ChaosTools.dyca</code></a><span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">dyca(data, eig_threshold) -&gt; eigenvalues, proj_mat, projected_data</code></pre><p>Compute the Dynamical Component analysis (DyCA) of the given <code>data</code><sup class="footnote-reference"><a href="#footnote-Uhl2018" id="citeref-Uhl2018">[Uhl2018]</a></sup> used for dimensionality reduction.</p><p>Return the eigenvalues, projection matrix, and reduced-dimension data (which are just <code>data*proj_mat</code>).</p><p><strong>Keyword Arguments</strong></p><ul><li>norm_eigenvectors=false : if true, normalize the eigenvectors</li></ul><p><strong>Description</strong></p><p>Dynamical Component Analysis (DyCA) is a method to detect projection vectors to reduce the dimensionality of multi-variate, high-dimensional deterministic datasets. Unlike methods like PCA or ICA that make a stochasticity assumption, DyCA relies on a determinacy assumption on the time-series and is based on the solution of a generalized eigenvalue problem. After choosing an appropriate eigenvalue threshold and solving the eigenvalue problem, the obtained eigenvectors are used to project the high-dimensional dataset onto a lower dimension. The obtained eigenvalues measure the quality of the assumption of linear determinism for the investigated data. Furthermore, the number of the generalized eigenvalues with a value of approximately 1.0 are a measure of the number of linear equations contained in the dataset. This property is useful in detecting regions with highly deterministic parts in the time-series and also as a preprocessing step for reservoir computing of high-dimensional spatio-temporal data.</p><p>The generalised eigenvalue problem we solve is:</p><p class="math-container">\[C_1 C_0^{-1} C_1^{\top} \bar{u} = \lambda C_2 \bar{u}
\]</p><p>where <span>$C_0$</span> is the correlation matrix of the data with itself, <span>$C_1$</span> the correlation matrix of the data with its derivative, and <span>$C_2$</span> the correlation matrix of the derivative of the data with itself. The eigenvectors <span>$\bar{u}$</span> with eigenvalues approximately 1 and their <span>$C_1^{-1} C_2 u$</span> counterpart, form the space where the data is projected onto.</p></div><a class="docs-sourcelink" href="https://github.com/JuliaDynamics/ChaosTools.jl/blob/a9b834cf10bf01d7ccc1ec1828214c53fa34e8a6/src/dimreduction/dyca.jl#L4-L45" target="_blank">source</a></section></article><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-Broomhead1987"><a class="tag is-link" href="#citeref-Broomhead1987">Broomhead1987</a>Broomhead, Jones, King, J. Phys. A <strong>20</strong>, 9, pp L563 (1987)</li><li class="footnote" id="footnote-Uhl2018"><a class="tag is-link" href="#citeref-Uhl2018">Uhl2018</a>B Seifert, K Korn, S Hartmann, C Uhl, <em>Dynamical Component Analysis (DYCA): Dimensionality Reduction for High-Dimensional Deterministic Time-Series</em>, 10.1109/mlsp.2018.8517024, 2018 IEEE 28th International Workshop on Machine Learning for Signal Processing (MLSP)</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../chaos_detection/">« Detecting &amp; Categorizing Chaos</a><a class="docs-footer-nextpage" href="../periodicity/">Fixed points &amp; Periodicity »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label></p><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div><p></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Monday 18 November 2024 09:22">Monday 18 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></HTML>
fig</code></pre><img alt="Example block output" src="84db019b.png"/><p>we have used the same system as in the <a href="@ref">Delay Coordinates Embedding</a> example, and picked the optimal delay time of <code>τ = 30</code> (for same <code>Δt = 0.05</code>). Regardless, the vanilla delay coordinates is much worse than the Broomhead-King coordinates.</p><h2 id="DyCA-Dynamical-Component-Analysis"><a class="docs-heading-anchor" href="#DyCA-Dynamical-Component-Analysis">DyCA - Dynamical Component Analysis</a><a id="DyCA-Dynamical-Component-Analysis-1"></a><a class="docs-heading-anchor-permalink" href="#DyCA-Dynamical-Component-Analysis" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" href="#ChaosTools.dyca" id="ChaosTools.dyca"><code>ChaosTools.dyca</code></a><span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">dyca(data, eig_threshold) -&gt; eigenvalues, proj_mat, projected_data</code></pre><p>Compute the Dynamical Component analysis (DyCA) of the given <code>data</code><sup class="footnote-reference"><a href="#footnote-Uhl2018" id="citeref-Uhl2018">[Uhl2018]</a></sup> used for dimensionality reduction.</p><p>Return the eigenvalues, projection matrix, and reduced-dimension data (which are just <code>data*proj_mat</code>).</p><p><strong>Keyword Arguments</strong></p><ul><li>norm_eigenvectors=false : if true, normalize the eigenvectors</li></ul><p><strong>Description</strong></p><p>Dynamical Component Analysis (DyCA) is a method to detect projection vectors to reduce the dimensionality of multi-variate, high-dimensional deterministic datasets. Unlike methods like PCA or ICA that make a stochasticity assumption, DyCA relies on a determinacy assumption on the time-series and is based on the solution of a generalized eigenvalue problem. After choosing an appropriate eigenvalue threshold and solving the eigenvalue problem, the obtained eigenvectors are used to project the high-dimensional dataset onto a lower dimension. The obtained eigenvalues measure the quality of the assumption of linear determinism for the investigated data. Furthermore, the number of the generalized eigenvalues with a value of approximately 1.0 are a measure of the number of linear equations contained in the dataset. This property is useful in detecting regions with highly deterministic parts in the time-series and also as a preprocessing step for reservoir computing of high-dimensional spatio-temporal data.</p><p>The generalised eigenvalue problem we solve is:</p><p class="math-container">\[C_1 C_0^{-1} C_1^{\top} \bar{u} = \lambda C_2 \bar{u}
\]</p><p>where <span>$C_0$</span> is the correlation matrix of the data with itself, <span>$C_1$</span> the correlation matrix of the data with its derivative, and <span>$C_2$</span> the correlation matrix of the derivative of the data with itself. The eigenvectors <span>$\bar{u}$</span> with eigenvalues approximately 1 and their <span>$C_1^{-1} C_2 u$</span> counterpart, form the space where the data is projected onto.</p></div><a class="docs-sourcelink" href="https://github.com/JuliaDynamics/ChaosTools.jl/blob/a7634b7bd083978ea3bfe3de89a62068dd92a49a/src/dimreduction/dyca.jl#L4-L45" target="_blank">source</a></section></article><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-Broomhead1987"><a class="tag is-link" href="#citeref-Broomhead1987">Broomhead1987</a>Broomhead, Jones, King, J. Phys. A <strong>20</strong>, 9, pp L563 (1987)</li><li class="footnote" id="footnote-Uhl2018"><a class="tag is-link" href="#citeref-Uhl2018">Uhl2018</a>B Seifert, K Korn, S Hartmann, C Uhl, <em>Dynamical Component Analysis (DYCA): Dimensionality Reduction for High-Dimensional Deterministic Time-Series</em>, 10.1109/mlsp.2018.8517024, 2018 IEEE 28th International Workshop on Machine Learning for Signal Processing (MLSP)</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../chaos_detection/">« Detecting &amp; Categorizing Chaos</a><a class="docs-footer-nextpage" href="../periodicity/">Fixed points &amp; Periodicity »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label></p><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div><p></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Thursday 16 January 2025 12:02">Thursday 16 January 2025</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></HTML>
16 changes: 8 additions & 8 deletions chaostools/dev/index.html

Large diffs are not rendered by default.

Binary file added chaostools/dev/lyapunovs/1c95670b.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed chaostools/dev/lyapunovs/4b790f47.png
Binary file not shown.
Binary file added chaostools/dev/lyapunovs/4c3b64c8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed chaostools/dev/lyapunovs/806808d9.png
Binary file not shown.
Loading

0 comments on commit 10a3a6f

Please sign in to comment.