Skip to content

Commit 7348ab0

Browse files
committed
Updated tutorial to include the rational toy example
1 parent 004d86e commit 7348ab0

File tree

2 files changed

+135
-18
lines changed

2 files changed

+135
-18
lines changed

Tutorial.html

Lines changed: 79 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13120,7 +13120,7 @@ <h2 id="Basic-usage">Basic usage<a class="anchor-link" href="#Basic-usage">&#182
1312013120
<div class="inner_cell">
1312113121
<div class="input_area">
1312213122
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">sympy</span> <span class="k">import</span> <span class="n">vring</span><span class="p">,</span> <span class="n">QQ</span>
13123-
<span class="kn">from</span> <span class="nn">clue</span> <span class="k">import</span> <span class="n">FODESystem</span>
13123+
<span class="kn">from</span> <span class="nn">clue</span> <span class="k">import</span> <span class="n">FODESystem</span><span class="p">,</span> <span class="n">SparsePolynomial</span><span class="p">,</span> <span class="n">RationalFunction</span>
1312413124
</pre></div>
1312513125

1312613126
</div>
@@ -13235,6 +13235,76 @@ <h2 id="Basic-usage">Basic usage<a class="anchor-link" href="#Basic-usage">&#182
1323513235

1323613236
</div>
1323713237
</div>
13238+
</div>
13239+
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13240+
</div><div class="inner_cell">
13241+
<div class="text_cell_render border-box-sizing rendered_html">
13242+
<p>This software also allows systems with rational functions:</p>
13243+
13244+
</div>
13245+
</div>
13246+
</div>
13247+
<div class="cell border-box-sizing code_cell rendered">
13248+
<div class="input">
13249+
<div class="prompt input_prompt">In&nbsp;[5]:</div>
13250+
<div class="inner_cell">
13251+
<div class="input_area">
13252+
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">varnames</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;x&#39;</span><span class="p">,</span><span class="s1">&#39;y&#39;</span><span class="p">]</span>
13253+
<span class="n">rational_ode</span> <span class="o">=</span> <span class="n">FODESystem</span><span class="p">([</span>
13254+
<span class="n">RationalFunction</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="s2">&quot;y/(x-y)&quot;</span><span class="p">,</span> <span class="n">varnames</span><span class="p">),</span>
13255+
<span class="n">RationalFunction</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="s2">&quot;x/(x-y)&quot;</span><span class="p">,</span> <span class="n">varnames</span><span class="p">)</span>
13256+
<span class="p">],</span> <span class="n">variables</span> <span class="o">=</span> <span class="n">varnames</span><span class="p">)</span>
13257+
</pre></div>
13258+
13259+
</div>
13260+
</div>
13261+
</div>
13262+
13263+
</div>
13264+
<div class="cell border-box-sizing code_cell rendered">
13265+
<div class="input">
13266+
<div class="prompt input_prompt">In&nbsp;[6]:</div>
13267+
<div class="inner_cell">
13268+
<div class="input_area">
13269+
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">rational_ode</span><span class="o">.</span><span class="n">lumping</span><span class="p">([</span><span class="n">SparsePolynomial</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="s2">&quot;x-y&quot;</span><span class="p">,</span> <span class="n">varnames</span><span class="p">)]);</span>
13270+
</pre></div>
13271+
13272+
</div>
13273+
</div>
13274+
</div>
13275+
13276+
<div class="output_wrapper">
13277+
<div class="output">
13278+
13279+
13280+
<div class="output_area">
13281+
13282+
<div class="prompt"></div>
13283+
13284+
13285+
<div class="output_subarea output_stream output_stderr output_text">
13286+
<pre>2021-11-26 14:14:43 WARNING Method [polynomial] selected but input is not SparsePolynomial. Trying random...
13287+
</pre>
13288+
</div>
13289+
</div>
13290+
13291+
<div class="output_area">
13292+
13293+
<div class="prompt"></div>
13294+
13295+
13296+
<div class="output_subarea output_stream output_stdout output_text">
13297+
<pre>New variables:
13298+
y0 = x + -y
13299+
Lumped system:
13300+
y0&#39; = (-1)/(1)
13301+
</pre>
13302+
</div>
13303+
</div>
13304+
13305+
</div>
13306+
</div>
13307+
1323813308
</div>
1323913309
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1324013310
</div><div class="inner_cell">
@@ -13261,7 +13331,7 @@ <h3 id="Reading-models-from-*.ode-files">Reading models from *.ode files<a class
1326113331
</div>
1326213332
<div class="cell border-box-sizing code_cell rendered">
1326313333
<div class="input">
13264-
<div class="prompt input_prompt">In&nbsp;[5]:</div>
13334+
<div class="prompt input_prompt">In&nbsp;[7]:</div>
1326513335
<div class="inner_cell">
1326613336
<div class="input_area">
1326713337
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">system</span> <span class="o">=</span> <span class="n">FODESystem</span><span class="p">(</span><span class="n">file</span><span class="o">=</span><span class="s2">&quot;Tutorial_files/model_example.ode&quot;</span><span class="p">)</span>
@@ -13278,7 +13348,7 @@ <h3 id="Reading-models-from-*.ode-files">Reading models from *.ode files<a class
1327813348

1327913349
<div class="output_area">
1328013350

13281-
<div class="prompt output_prompt">Out[5]:</div>
13351+
<div class="prompt output_prompt">Out[7]:</div>
1328213352

1328313353

1328413354

@@ -13303,7 +13373,7 @@ <h3 id="Reading-models-from-*.ode-files">Reading models from *.ode files<a class
1330313373
</div>
1330413374
<div class="cell border-box-sizing code_cell rendered">
1330513375
<div class="input">
13306-
<div class="prompt input_prompt">In&nbsp;[6]:</div>
13376+
<div class="prompt input_prompt">In&nbsp;[8]:</div>
1330713377
<div class="inner_cell">
1330813378
<div class="input_area">
1330913379
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">clue.rational_function</span> <span class="k">import</span> <span class="n">SparsePolynomial</span>
@@ -13369,7 +13439,7 @@ <h3 id="Rational-numbers">Rational numbers<a class="anchor-link" href="#Rational
1336913439
</div>
1337013440
<div class="cell border-box-sizing code_cell rendered">
1337113441
<div class="input">
13372-
<div class="prompt input_prompt">In&nbsp;[7]:</div>
13442+
<div class="prompt input_prompt">In&nbsp;[9]:</div>
1337313443
<div class="inner_cell">
1337413444
<div class="input_area">
1337513445
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">R</span> <span class="o">=</span> <span class="n">vring</span><span class="p">([</span><span class="s2">&quot;x1&quot;</span><span class="p">,</span> <span class="s2">&quot;x2&quot;</span><span class="p">],</span> <span class="n">QQ</span><span class="p">)</span>
@@ -13438,7 +13508,7 @@ <h3 id="Unknown-scalar-parameters">Unknown scalar parameters<a class="anchor-lin
1343813508
</div>
1343913509
<div class="cell border-box-sizing code_cell rendered">
1344013510
<div class="input">
13441-
<div class="prompt input_prompt">In&nbsp;[8]:</div>
13511+
<div class="prompt input_prompt">In&nbsp;[10]:</div>
1344213512
<div class="inner_cell">
1344313513
<div class="input_area">
1344413514
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">R</span> <span class="o">=</span> <span class="n">vring</span><span class="p">([</span><span class="s2">&quot;x1&quot;</span><span class="p">,</span> <span class="s2">&quot;x2&quot;</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="s2">&quot;b&quot;</span><span class="p">],</span> <span class="n">QQ</span><span class="p">)</span>
@@ -13502,7 +13572,7 @@ <h3 id="Unknown-scalar-parameters">Unknown scalar parameters<a class="anchor-lin
1350213572
</div>
1350313573
<div class="cell border-box-sizing code_cell rendered">
1350413574
<div class="input">
13505-
<div class="prompt input_prompt">In&nbsp;[9]:</div>
13575+
<div class="prompt input_prompt">In&nbsp;[11]:</div>
1350613576
<div class="inner_cell">
1350713577
<div class="input_area">
1350813578
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># defining the coefficient field</span>
@@ -13555,7 +13625,7 @@ <h3 id="Unknown-scalar-parameters">Unknown scalar parameters<a class="anchor-lin
1355513625
</div>
1355613626
<div class="cell border-box-sizing code_cell rendered">
1355713627
<div class="input">
13558-
<div class="prompt input_prompt">In&nbsp;[10]:</div>
13628+
<div class="prompt input_prompt">In&nbsp;[12]:</div>
1355913629
<div class="inner_cell">
1356013630
<div class="input_area">
1356113631
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># defining the coefficient field</span>
@@ -13623,7 +13693,7 @@ <h3 id="Irrational-coefficients">Irrational coefficients<a class="anchor-link" h
1362313693
</div>
1362413694
<div class="cell border-box-sizing code_cell rendered">
1362513695
<div class="input">
13626-
<div class="prompt input_prompt">In&nbsp;[11]:</div>
13696+
<div class="prompt input_prompt">In&nbsp;[13]:</div>
1362713697
<div class="inner_cell">
1362813698
<div class="input_area">
1362913699
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">sympy</span> <span class="k">import</span> <span class="n">sqrt</span>

Tutorial.ipynb

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"outputs": [],
4848
"source": [
4949
"from sympy import vring, QQ\n",
50-
"from clue import FODESystem"
50+
"from clue import FODESystem, SparsePolynomial, RationalFunction"
5151
]
5252
},
5353
{
@@ -130,6 +130,53 @@
130130
"*Remark:* to supress the output, use `print_reduction=False` keyword argument. If you would like to print the original system, use `print_system=True`. Check the documentation of the method `lumping` for further information."
131131
]
132132
},
133+
{
134+
"cell_type": "markdown",
135+
"metadata": {},
136+
"source": [
137+
"This software also allows systems with rational functions:"
138+
]
139+
},
140+
{
141+
"cell_type": "code",
142+
"execution_count": 5,
143+
"metadata": {},
144+
"outputs": [],
145+
"source": [
146+
"varnames = ['x','y']\n",
147+
"rational_ode = FODESystem([\n",
148+
" RationalFunction.from_string(\"y/(x-y)\", varnames),\n",
149+
" RationalFunction.from_string(\"x/(x-y)\", varnames)\n",
150+
"], variables = varnames)"
151+
]
152+
},
153+
{
154+
"cell_type": "code",
155+
"execution_count": 6,
156+
"metadata": {},
157+
"outputs": [
158+
{
159+
"name": "stderr",
160+
"output_type": "stream",
161+
"text": [
162+
"2021-11-26 14:14:43 WARNING Method [polynomial] selected but input is not SparsePolynomial. Trying random...\n"
163+
]
164+
},
165+
{
166+
"name": "stdout",
167+
"output_type": "stream",
168+
"text": [
169+
"New variables:\n",
170+
"y0 = x + -y\n",
171+
"Lumped system:\n",
172+
"y0' = (-1)/(1)\n"
173+
]
174+
}
175+
],
176+
"source": [
177+
"rational_ode.lumping([SparsePolynomial.from_string(\"x-y\", varnames)]);"
178+
]
179+
},
133180
{
134181
"cell_type": "markdown",
135182
"metadata": {},
@@ -155,7 +202,7 @@
155202
},
156203
{
157204
"cell_type": "code",
158-
"execution_count": 5,
205+
"execution_count": 7,
159206
"metadata": {},
160207
"outputs": [
161208
{
@@ -164,7 +211,7 @@
164211
"['Ap', 'ApB', 'Au', 'AuB', 'B', 'r1', 'r2']"
165212
]
166213
},
167-
"execution_count": 5,
214+
"execution_count": 7,
168215
"metadata": {},
169216
"output_type": "execute_result"
170217
}
@@ -183,7 +230,7 @@
183230
},
184231
{
185232
"cell_type": "code",
186-
"execution_count": 6,
233+
"execution_count": 8,
187234
"metadata": {},
188235
"outputs": [
189236
{
@@ -237,7 +284,7 @@
237284
},
238285
{
239286
"cell_type": "code",
240-
"execution_count": 7,
287+
"execution_count": 9,
241288
"metadata": {},
242289
"outputs": [
243290
{
@@ -298,7 +345,7 @@
298345
},
299346
{
300347
"cell_type": "code",
301-
"execution_count": 8,
348+
"execution_count": 10,
302349
"metadata": {},
303350
"outputs": [
304351
{
@@ -345,7 +392,7 @@
345392
},
346393
{
347394
"cell_type": "code",
348-
"execution_count": 9,
395+
"execution_count": 11,
349396
"metadata": {},
350397
"outputs": [
351398
{
@@ -383,7 +430,7 @@
383430
},
384431
{
385432
"cell_type": "code",
386-
"execution_count": 10,
433+
"execution_count": 12,
387434
"metadata": {},
388435
"outputs": [
389436
{
@@ -440,7 +487,7 @@
440487
},
441488
{
442489
"cell_type": "code",
443-
"execution_count": 11,
490+
"execution_count": 13,
444491
"metadata": {},
445492
"outputs": [
446493
{

0 commit comments

Comments
 (0)