Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Example of using pydelay in SageMathCloud.

Views: 360
Kernel: Unknown Kernel
# import pydelay and numpy and pylab import numpy as np import pylab as pl from pydelay import dde23 # define the equations eqns = { 'x' : '0.25 * x(t-tau) / (1.0 + pow(x(t-tau),p)) -0.1*x' } #define the parameters params = { 'tau': 15, 'p' : 10 } # Initialise the solver dde = dde23(eqns=eqns, params=params) # set the simulation parameters # (solve from t=0 to t=1000 and limit the maximum step size to 1.0) dde.set_sim_params(tfinal=1000, dtmax=1.0) # set the history of to the constant function 0.5 (using a python lambda function) histfunc = { 'x': lambda t: 0.5 } dde.hist_from_funcs(histfunc, 51) # run the simulator dde.run() # Make a plot of x(t) vs x(t-tau): # Sample the solution twice with a stepsize of dt=0.1: # once in the interval [515, 1000] sol1 = dde.sample(515, 1000, 0.1) x1 = sol1['x'] # and once between [500, 1000-15] sol2 = dde.sample(500, 1000-15, 0.1) x2 = sol2['x'] pl.plot(x1, x2) pl.xlabel('$x(t)$') pl.ylabel('$x(t - 15)$') pl.show()
{"metadata":{},"output_type":"display_data","png":"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\nERERERERERERERERERERERERERERERERERERkTT7fxfblqfoK7weAAAAAElFTkSuQmCC\n","text":["<matplotlib.figure.Figure at 0x7f16292a9350>"]}