Skip to content

Commit

Permalink
Delayed flows with new format
Browse files Browse the repository at this point in the history
  • Loading branch information
stanweer1 committed Aug 21, 2024
1 parent cd13570 commit 4c4805f
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 73 deletions.
1 change: 0 additions & 1 deletion docs/_modules/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,6 @@ <h1>All modules for which code is available</h1>
<li><a href="teaspoon/MakeData/DynSysLib/DynSysLib.html">teaspoon.MakeData.DynSysLib.DynSysLib</a></li>
<li><a href="teaspoon/MakeData/DynSysLib/autonomous_dissipative_flows.html">teaspoon.MakeData.DynSysLib.autonomous_dissipative_flows</a></li>
<li><a href="teaspoon/MakeData/DynSysLib/conservative_flows.html">teaspoon.MakeData.DynSysLib.conservative_flows</a></li>
<li><a href="teaspoon/MakeData/DynSysLib/delayed_flows.html">teaspoon.MakeData.DynSysLib.delayed_flows</a></li>
<li><a href="teaspoon/MakeData/DynSysLib/driven_dissipative_flows.html">teaspoon.MakeData.DynSysLib.driven_dissipative_flows</a></li>
<li><a href="teaspoon/MakeData/DynSysLib/maps.html">teaspoon.MakeData.DynSysLib.maps</a></li>
<li><a href="teaspoon/MakeData/DynSysLib/medical_data.html">teaspoon.MakeData.DynSysLib.medical_data</a></li>
Expand Down
Binary file modified docs/doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/doctrees/modules/MakeData/DynSysLib/delayed_flows.doctree
Binary file not shown.
15 changes: 2 additions & 13 deletions docs/genindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,6 @@ <h2 id="L">L</h2>
<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="modules/MakeData/DynSysLib/delayed_flows.html#teaspoon.MakeData.DynSysLib.delayed_flows.mackey_glass">mackey_glass() (in module teaspoon.MakeData.DynSysLib.delayed_flows)</a>
</li>
<li><a href="modules/SP/network.html#teaspoon.SP.network_tools.make_network">make_network() (in module teaspoon.SP.network_tools)</a>
</li>
<li><a href="modules/TDA/persistence.html#teaspoon.TDA.Persistence.maxBirth">maxBirth() (in module teaspoon.TDA.Persistence)</a>
Expand Down Expand Up @@ -406,8 +404,6 @@ <h2 id="M">M</h2>
<li><a href="modules/MakeData/DynSysLib/autonomous_dissipative_flows.html#module-teaspoon.MakeData.DynSysLib.autonomous_dissipative_flows">teaspoon.MakeData.DynSysLib.autonomous_dissipative_flows</a>
</li>
<li><a href="modules/MakeData/DynSysLib/conservative_flows.html#module-teaspoon.MakeData.DynSysLib.conservative_flows">teaspoon.MakeData.DynSysLib.conservative_flows</a>
</li>
<li><a href="modules/MakeData/DynSysLib/delayed_flows.html#module-teaspoon.MakeData.DynSysLib.delayed_flows">teaspoon.MakeData.DynSysLib.delayed_flows</a>
</li>
<li><a href="modules/MakeData/DynSysLib/driven_dissipative_flows.html#module-teaspoon.MakeData.DynSysLib.driven_dissipative_flows">teaspoon.MakeData.DynSysLib.driven_dissipative_flows</a>
</li>
Expand Down Expand Up @@ -580,13 +576,6 @@ <h2 id="T">T</h2>

<ul>
<li><a href="modules/MakeData/DynSysLib/conservative_flows.html#module-teaspoon.MakeData.DynSysLib.conservative_flows">module</a>
</li>
</ul></li>
<li>
teaspoon.MakeData.DynSysLib.delayed_flows

<ul>
<li><a href="modules/MakeData/DynSysLib/delayed_flows.html#module-teaspoon.MakeData.DynSysLib.delayed_flows">module</a>
</li>
</ul></li>
<li>
Expand Down Expand Up @@ -680,15 +669,15 @@ <h2 id="T">T</h2>
<li><a href="modules/ParamSelection/MsPE.html#module-teaspoon.parameter_selection.MsPE">module</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li>
teaspoon.parameter_selection.PAMI_delay

<ul>
<li><a href="modules/ParamSelection/PAMI.html#module-teaspoon.parameter_selection.PAMI_delay">module</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li>
teaspoon.SP.adaptivePart

Expand Down
35 changes: 2 additions & 33 deletions docs/modules/MakeData/DynSysLib/delayed_flows.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/sphinx_highlight.js"></script>
<script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
<script>window.MathJax = {"tex": {"inlineMath": [["$", "$"], ["\\(", "\\)"]], "processEscapes": true}, "options": {"ignoreHtmlClass": "tex2jax_ignore|mathjax_ignore|document", "processHtmlClass": "tex2jax_process|mathjax_process|math|output_area"}}</script>
<script defer="defer" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
Expand Down Expand Up @@ -173,37 +171,8 @@
</style>
<section id="delayed-flows">
<h1><span class="section-number">2.1.2.1.8. </span>Delayed Flows<a class="headerlink" href="#delayed-flows" title="Permalink to this heading"></a></h1>
<section id="module-teaspoon.MakeData.DynSysLib.delayed_flows">
<span id="main-functions"></span><h2><span class="section-number">2.1.2.1.8.1. </span>Main Functions<a class="headerlink" href="#module-teaspoon.MakeData.DynSysLib.delayed_flows" title="Permalink to this heading"></a></h2>
<dl class="py function">
<dt class="sig sig-object py" id="teaspoon.MakeData.DynSysLib.delayed_flows.mackey_glass">
<span class="sig-prename descclassname"><span class="pre">teaspoon.MakeData.DynSysLib.delayed_flows.</span></span><span class="sig-name descname"><span class="pre">mackey_glass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">parameters</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">SampleSize</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">400</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dynamic_state</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'periodic'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/teaspoon/MakeData/DynSysLib/delayed_flows.html#mackey_glass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#teaspoon.MakeData.DynSysLib.delayed_flows.mackey_glass" title="Permalink to this definition"></a></dt>
<dd><p>The Mackey-Glass Delayed Differential Equation is</p>
<div class="math notranslate nohighlight">
\[\dot{x}(t) = -\gamma*x(t) + \beta*\frac{x(t - \tau)}{1 + x(t - \tau)^n}\]</div>
<p>where we chose the parameters <span class="math notranslate nohighlight">\(\tau = 2, \beta = 2, \gamma = 1,\)</span> and <span class="math notranslate nohighlight">\(n = 9.65\)</span>. We solve this system for 400 seconds with a sampling rate of 50 Hz. The solution was then downsampled to 5 Hz and the last 200 seconds were used for the figure.</p>
<figure class="align-default">
<img alt="../../../_images/Mackey_Glass_Delayed_Differential_Equation.png" src="../../../_images/Mackey_Glass_Delayed_Differential_Equation.png" />
</figure>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>parameters</strong> (<em>Optional</em><em>[</em><em>floats</em><em>]</em>) – Array of four floats [gamma, tau, beta, n]</p></li>
<li><p><strong>fs</strong> (<em>Optional</em><em>[</em><em>float</em><em>]</em>) – Sampling rate for simulation</p></li>
<li><p><strong>SampleSize</strong> (<em>Optional</em><em>[</em><em>int</em><em>]</em>) – length of sample at end of entire time series</p></li>
<li><p><strong>L</strong> (<em>Optional</em><em>[</em><em>int</em><em>]</em>) – Number of iterations</p></li>
<li><p><strong>dynamic_state</strong> (<em>Optional</em><em>[</em><em>str</em><em>]</em>) – Set dynamic state as either ‘periodic’ or ‘chaotic’ is not supplying parameters.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Array of the time indices as <cite>t</cite> and the simulation time series <cite>ts</cite></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>array</p>
</dd>
</dl>
</dd></dl>

<section id="main-functions">
<h2><span class="section-number">2.1.2.1.8.1. </span>Main Functions<a class="headerlink" href="#main-functions" title="Permalink to this heading"></a></h2>
</section>
<section id="meta-function">
<h2><span class="section-number">2.1.2.1.8.2. </span>Meta Function<a class="headerlink" href="#meta-function" title="Permalink to this heading"></a></h2>
Expand Down
Binary file modified docs/objects.inv
Binary file not shown.
5 changes: 0 additions & 5 deletions docs/py-modindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,6 @@ <h1>Python Module Index</h1>
<td>&#160;&#160;&#160;
<a href="modules/MakeData/DynSysLib/conservative_flows.html#module-teaspoon.MakeData.DynSysLib.conservative_flows"><code class="xref">teaspoon.MakeData.DynSysLib.conservative_flows</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="modules/MakeData/DynSysLib/delayed_flows.html#module-teaspoon.MakeData.DynSysLib.delayed_flows"><code class="xref">teaspoon.MakeData.DynSysLib.delayed_flows</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
Expand Down
2 changes: 1 addition & 1 deletion docs/searchindex.js

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions teaspoon/teaspoon/MakeData/DynSysLib/delayed_flows.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import numpy as np
from ddeint import ddeint

def delayed_flows(system, dynamic_state=None, L=None, fs=None,
SampleSize=None, parameters=None, InitialConditions=None):
Expand All @@ -8,7 +9,7 @@ def delayed_flows(system, dynamic_state=None, L=None, fs=None,

return t, ts

def mackey_glass(parameters=None, fs=5, SampleSize=1000, L=400, dynamic_state='periodic'):
def mackey_glass(parameters=[1.0001, 2.0, 2.0, 7.75], fs=5, SampleSize=1000, L=400, dynamic_state=None):
"""
The Mackey-Glass Delayed Differential Equation is
Expand All @@ -20,38 +21,37 @@ def mackey_glass(parameters=None, fs=5, SampleSize=1000, L=400, dynamic_state='p
.. figure:: ../../../figures/Delayed_Flows/Mackey_Glass_Delayed_Differential_Equation.png
Parameters:
parameters (Optional[floats]): Array of four floats [gamma, tau, beta, n]
parameters (Optional[floats]): Array of four floats [gamma, tau, beta, n] or None if using the dynamic_state variable
fs (Optional[float]): Sampling rate for simulation
SampleSize (Optional[int]): length of sample at end of entire time series
L (Optional[int]): Number of iterations
dynamic_state (Optional[str]): Set dynamic state as either 'periodic' or 'chaotic' is not supplying parameters.
dynamic_state (Optional[str]): Set dynamic state as either 'periodic' or 'chaotic' if not supplying parameters.
Returns:
array: Array of the time indices as `t` and the simulation time series `ts`
"""

# This requires installation of ddeint (pip install ddeint)
from ddeint import ddeint

t = np.linspace(0, L, int(L*fs))

# setting system parameters
if len(parameters) != 4:
print(
'Warning: needed 4 parameters. Defaulting to periodic solution parameters.')
parameters = None
else:
gamma, τ, B, n = parameters[0], parameters[1], parameters[2], parameters[3]

if parameters == None:
if len(parameters) != 3:
raise ValueError('Need 3 parameters as specified in documentation.')
elif dynamic_state != None:
if dynamic_state == 'periodic':
n = 7.75
if dynamic_state == 'chaotic':
τ = 2.0
B = 2.0
gamma = 1.0001
elif dynamic_state == 'chaotic':
n = 9.65
τ = 2.0
B = 2.0
gamma = 1.0001
τ = 2.0
B = 2.0
gamma = 1.0001
else:
raise ValueError('dynamic_state needs to be either "periodic" or "chaotic" or provide an array of length 3 in parameters.')
else:
gamma, τ, B, n = parameters[0], parameters[1], parameters[2], parameters[3]


def mackey_glass(X, t, d):
x = X(t)
Expand All @@ -67,4 +67,4 @@ def g(t): return np.array([1, 1])
ts = [((states[0])[::int(fsolve/fs)])[-SampleSize:]]
t = tt[::int(fsolve/fs)][-SampleSize:]

return t, ts
return t, ts

0 comments on commit 4c4805f

Please sign in to comment.