|
9 | 9 | x1'(t) = a * x1(t) + u(t), |
10 | 10 | x2'(t) = b * x2(t) + c*x1(t)*x2(t), |
11 | 11 | y(t) = x1(t) |
12 | | -)</code></pre><p>Here,</p><ul><li><code>x1</code>, <code>x2</code> are state variables</li><li><code>y</code> is an output variable</li><li><code>u</code> is an input variable</li><li><code>a</code>, <code>b</code>, <code>c</code> are time-independent parameters</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/91e2d6c96b0b8ef956c50df65321a41bdf655c90/src/input_macro.jl#L267-L293">source</a></section></details></article><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.ODE"><a class="docstring-binding" href="#StructuralIdentifiability.ODE"><code>StructuralIdentifiability.ODE</code></a> — <span class="docstring-category">Type</span></summary><section><div><p>The main structure that represents input ODE system.</p><p>Stores information about states (<code>x_vars</code>), outputs (<code>y_vars</code>), inputs (<code>u_vars</code>), parameters (<code>parameters</code>) and the equations.</p><p>This structure is constructed via <code>@ODEmodel</code> macro.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/91e2d6c96b0b8ef956c50df65321a41bdf655c90/src/ODE.jl#L1-L7">source</a></section></details></article><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.set_parameter_values"><a class="docstring-binding" href="#StructuralIdentifiability.set_parameter_values"><code>StructuralIdentifiability.set_parameter_values</code></a> — <span class="docstring-category">Function</span></summary><section><div><pre><code class="language-julia hljs">set_parameter_values(ode, param_values)</code></pre><p>Input:</p><ul><li><code>ode</code> - an ODE as above</li><li><code>param_values</code> - values for (possibly, some of) the parameters as dictionary <code>parameter</code> => <code>value</code></li></ul><p>Output:</p><ul><li>new ode with the parameters in param_values plugged with the given numbers</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/91e2d6c96b0b8ef956c50df65321a41bdf655c90/src/ODE.jl#L96-L105">source</a></section></details></article><h2 id="Create-Compartmental-Model"><a class="docs-heading-anchor" href="#Create-Compartmental-Model">Create Compartmental Model</a><a id="Create-Compartmental-Model-1"></a><a class="docs-heading-anchor-permalink" href="#Create-Compartmental-Model" title="Permalink"></a></h2><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.linear_compartment_model"><a class="docstring-binding" href="#StructuralIdentifiability.linear_compartment_model"><code>StructuralIdentifiability.linear_compartment_model</code></a> — <span class="docstring-category">Function</span></summary><section><div><pre><code class="language-julia hljs">linear_compartment_model(graph; inputs = [], outputs = [], leaks = [])</code></pre><p>Input: defines a linear compartment model with nodes numbered from 1 to <code>n</code> by</p><ul><li><code>graph</code> - and array of integer arrays representing the adjacency lists of the graph</li><li><code>inputs</code> - array of input nodes</li><li><code>outputs</code> - array of output nodes</li><li><code>leaks</code> - array of sink nodes</li></ul><p>Output:</p><ul><li>the corresponding ODE system in a standard notation (as, e.g., in <a href="https://doi.org/10.1007/s11538-015-0098-0">this paper</a>)</li></ul><p>Example: Consider a bidirected cycle with four nodes. Its adjacency list can be written as follows:</p><pre><code class="language-julia hljs">[ [2, 4], [1, 3], [2, 4], [1, 3] ]</code></pre><p>In the list above, the <code>i</code>-th element is a list of vertices to which there exists an edge from the vertex <code>i</code>. Now we can create a linear compartment model over this graph with the output at vertex 1, input at vertex 2, and leaks at vertices 3 and 4 as follows:</p><pre><code class="language-julia-repl hljs">julia> ode = linear_compartment_model([[2, 4], [1, 3], [2, 4], [1, 3]], outputs = [1], inputs = [2], leaks = [2, 3]) |
| 12 | +)</code></pre><p>Here,</p><ul><li><code>x1</code>, <code>x2</code> are state variables</li><li><code>y</code> is an output variable</li><li><code>u</code> is an input variable</li><li><code>a</code>, <code>b</code>, <code>c</code> are time-independent parameters</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/edba3965dc1b31b615bb68823f20e6a3fa463a2d/src/input_macro.jl#L267-L293">source</a></section></details></article><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.ODE"><a class="docstring-binding" href="#StructuralIdentifiability.ODE"><code>StructuralIdentifiability.ODE</code></a> — <span class="docstring-category">Type</span></summary><section><div><p>The main structure that represents input ODE system.</p><p>Stores information about states (<code>x_vars</code>), outputs (<code>y_vars</code>), inputs (<code>u_vars</code>), parameters (<code>parameters</code>) and the equations.</p><p>This structure is constructed via <code>@ODEmodel</code> macro.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/edba3965dc1b31b615bb68823f20e6a3fa463a2d/src/ODE.jl#L1-L7">source</a></section></details></article><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.set_parameter_values"><a class="docstring-binding" href="#StructuralIdentifiability.set_parameter_values"><code>StructuralIdentifiability.set_parameter_values</code></a> — <span class="docstring-category">Function</span></summary><section><div><pre><code class="language-julia hljs">set_parameter_values(ode, param_values)</code></pre><p>Input:</p><ul><li><code>ode</code> - an ODE as above</li><li><code>param_values</code> - values for (possibly, some of) the parameters as dictionary <code>parameter</code> => <code>value</code></li></ul><p>Output:</p><ul><li>new ode with the parameters in param_values plugged with the given numbers</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/edba3965dc1b31b615bb68823f20e6a3fa463a2d/src/ODE.jl#L96-L105">source</a></section></details></article><h2 id="Create-Compartmental-Model"><a class="docs-heading-anchor" href="#Create-Compartmental-Model">Create Compartmental Model</a><a id="Create-Compartmental-Model-1"></a><a class="docs-heading-anchor-permalink" href="#Create-Compartmental-Model" title="Permalink"></a></h2><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.linear_compartment_model"><a class="docstring-binding" href="#StructuralIdentifiability.linear_compartment_model"><code>StructuralIdentifiability.linear_compartment_model</code></a> — <span class="docstring-category">Function</span></summary><section><div><pre><code class="language-julia hljs">linear_compartment_model(graph; inputs = [], outputs = [], leaks = [])</code></pre><p>Input: defines a linear compartment model with nodes numbered from 1 to <code>n</code> by</p><ul><li><code>graph</code> - and array of integer arrays representing the adjacency lists of the graph</li><li><code>inputs</code> - array of input nodes</li><li><code>outputs</code> - array of output nodes</li><li><code>leaks</code> - array of sink nodes</li></ul><p>Output:</p><ul><li>the corresponding ODE system in a standard notation (as, e.g., in <a href="https://doi.org/10.1007/s11538-015-0098-0">this paper</a>)</li></ul><p>Example: Consider a bidirected cycle with four nodes. Its adjacency list can be written as follows:</p><pre><code class="language-julia hljs">[ [2, 4], [1, 3], [2, 4], [1, 3] ]</code></pre><p>In the list above, the <code>i</code>-th element is a list of vertices to which there exists an edge from the vertex <code>i</code>. Now we can create a linear compartment model over this graph with the output at vertex 1, input at vertex 2, and leaks at vertices 3 and 4 as follows:</p><pre><code class="language-julia-repl hljs">julia> ode = linear_compartment_model([[2, 4], [1, 3], [2, 4], [1, 3]], outputs = [1], inputs = [2], leaks = [2, 3]) |
13 | 13 | x1' = -x1*a_2_1 - x1*a_4_1 + x2*a_1_2 + x4*a_1_4 |
14 | 14 | x3' = x2*a_3_2 - x3*a_2_3 - x3*a_4_3 - x3*a_0_3 + x4*a_3_4 |
15 | 15 | x2' = x1*a_2_1 - x2*a_1_2 - x2*a_3_2 - x2*a_0_2 + x3*a_2_3 + u2 |
16 | 16 | x4' = x1*a_4_1 + x3*a_4_3 - x4*a_1_4 - x4*a_3_4 |
17 | | -y1 = x1</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/91e2d6c96b0b8ef956c50df65321a41bdf655c90/src/lincomp.jl#L16-L43">source</a></section></details></article><h2 id="Discrete-time-systems"><a class="docs-heading-anchor" href="#Discrete-time-systems">Discrete-time systems</a><a id="Discrete-time-systems-1"></a><a class="docs-heading-anchor-permalink" href="#Discrete-time-systems" title="Permalink"></a></h2><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.@DDSmodel"><a class="docstring-binding" href="#StructuralIdentifiability.@DDSmodel"><code>StructuralIdentifiability.@DDSmodel</code></a> — <span class="docstring-category">Macro</span></summary><section><div><pre><code class="language-julia hljs">macro DDSmodel</code></pre><p>Macro for creating a DDS (discrete dynamical system) from a list of equations. It also injects all variables into the global scope.</p><p><strong>Example</strong></p><p>Creating a simple <code>DDS</code>:</p><pre><code class="language-julia hljs">using StructuralIdentifiability |
| 17 | +y1 = x1</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/edba3965dc1b31b615bb68823f20e6a3fa463a2d/src/lincomp.jl#L16-L43">source</a></section></details></article><h2 id="Discrete-time-systems"><a class="docs-heading-anchor" href="#Discrete-time-systems">Discrete-time systems</a><a id="Discrete-time-systems-1"></a><a class="docs-heading-anchor-permalink" href="#Discrete-time-systems" title="Permalink"></a></h2><article><details class="docstring" open="true"><summary id="StructuralIdentifiability.@DDSmodel"><a class="docstring-binding" href="#StructuralIdentifiability.@DDSmodel"><code>StructuralIdentifiability.@DDSmodel</code></a> — <span class="docstring-category">Macro</span></summary><section><div><pre><code class="language-julia hljs">macro DDSmodel</code></pre><p>Macro for creating a DDS (discrete dynamical system) from a list of equations. It also injects all variables into the global scope.</p><p><strong>Example</strong></p><p>Creating a simple <code>DDS</code>:</p><pre><code class="language-julia hljs">using StructuralIdentifiability |
18 | 18 |
|
19 | 19 | dds = @DDSmodel( |
20 | 20 | x1(t + 1) = a * x1(t) + u(t), |
21 | 21 | x2(t + 1) = b * x2(t) + c*x1(t)*x2(t), |
22 | 22 | y(t) = x1(t) |
23 | | -)</code></pre><p>Here,</p><ul><li><code>x1</code>, <code>x2</code> are state variables</li><li><code>y</code> is an output variable</li><li><code>u</code> is an input variable</li><li><code>a</code>, <code>b</code>, <code>c</code> are time-independent parameters</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/91e2d6c96b0b8ef956c50df65321a41bdf655c90/src/input_macro.jl#L300-L327">source</a></section></details></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../tutorials/reparametrization/">« Reparametrizations</a><a class="docs-footer-nextpage" href="../../identifiability/identifiability/">Functions to Assess Identifiability »</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><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><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.16.1 on <span class="colophon-date" title="Sunday 4 January 2026 17:43">Sunday 4 January 2026</span>. Using Julia version 1.12.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
| 23 | +)</code></pre><p>Here,</p><ul><li><code>x1</code>, <code>x2</code> are state variables</li><li><code>y</code> is an output variable</li><li><code>u</code> is an input variable</li><li><code>a</code>, <code>b</code>, <code>c</code> are time-independent parameters</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/StructuralIdentifiability.jl/blob/edba3965dc1b31b615bb68823f20e6a3fa463a2d/src/input_macro.jl#L300-L327">source</a></section></details></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../tutorials/reparametrization/">« Reparametrizations</a><a class="docs-footer-nextpage" href="../../identifiability/identifiability/">Functions to Assess Identifiability »</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><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><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.16.1 on <span class="colophon-date" title="Monday 5 January 2026 22:22">Monday 5 January 2026</span>. Using Julia version 1.12.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
0 commit comments