In [ ]:
import matplotlib.pyplot as plt
from pyodesys.symbolic import SymbolicSys
%matplotlib inline
In [ ]:
def decay(t, y, p):
return [-p['lmb']*y[0]]
In [ ]:
odesys = SymbolicSys.from_callback(decay, 1, 1, par_by_name=True, param_names=['lmb'])
In [ ]:
res = odesys.integrate(3, [1], {'lmb': 7, 'irrelevant_key': 'irrelevant_value'}, integrator='odeint')
res.plot()
In [ ]:
results = odesys.integrate(3, [1], {'lmb': [1, 5, 25]}, integrator='odeint')
fig, axes = plt.subplots(1, len(results), figsize=(14, 4))
for res, ax in zip(results, axes):
res.plot(ax=ax)
In [ ]:
def decay2(t, y, p):
return [-p['foo']*y[0], p['foo']*y[0] - p['bar']*y[1]]
In [ ]:
odesys2 = SymbolicSys.from_callback(decay2, 2, 2, par_by_name=True, param_names=['foo', 'bar'])
res2 = odesys2.integrate(3, [2, 1], {'foo': 2, 'bar': 1}, integrator='cvode')
res2.plot()
In [ ]:
results2 = odesys2.integrate(3, [2, 1], {'foo': 2, 'bar': [1, 2, 3]}, integrator='cvode')
fig, axes = plt.subplots(1, len(results2), figsize=(14, 4))
for r, ax in zip(results2, axes):
r.plot(ax=ax)