In [5]:
import vibration_toolbox as vtb
from inspect import signature
import inspect
In [2]:
sig = signature(vtb.time_plot)
In [3]:
for name, param in sig.parameters.items():
print(param.kind, ':', name, '=', param.default)
In [4]:
def sdfunc(t, y):
return -y
In [6]:
sig = inspect.signature(sdfunc)
In [7]:
sig
Out[7]:
In [10]:
for name, param in sig.parameters.items():
print(param.kind, ':', name, name, '=', param.default)
In [12]:
sig.parameters.items()[0]
In [14]:
for name, param in sig.parameters.items():
print(param.kind, ':', name, '=', param.default)
In [19]:
sig.parameters['t']
Out[19]:
In [21]:
sig.parameters.items()
Out[21]:
In [34]:
list(sig.parameters.keys())[1] is 'y'
Out[34]:
In [38]:
call_parameters = list(sig.parameters.keys())
call_parameters
Out[38]:
In [40]:
len(call_parameters)
Out[40]:
In [30]:
def newfunc(x, t, params = {}):
return sdfunc(t, x)
In [31]:
sdfunc(1,0)
Out[31]:
In [32]:
newfunc(1,0)
Out[32]:
In [33]:
sdfunc(0,1)
Out[33]:
In [57]:
params = {'t':1, 'y': 2}
In [42]:
params['t']
Out[42]:
In [46]:
for k, v in params.items():
exec("%s = %s" % (k, v))
In [44]:
params.items()
Out[44]:
In [47]:
t
Out[47]:
In [48]:
x
Out[48]:
In [49]:
params
Out[49]:
In [53]:
params['t'], params['x']
Out[53]:
In [61]:
a =[params[x] for x in call_parameters]
In [55]:
call_parameters
Out[55]:
In [56]:
params
Out[56]:
In [63]:
sdfunc(*a)
Out[63]:
In [66]:
import mousai as ms
In [67]:
ms.duff_osc
Out[67]:
In [68]:
In [75]:
from numpy import sin
In [78]:
def duff_osc_ss(x, params): # params is a dictionary of parameters
omega = params['omega'] # `omega` will be put into the dictionary
# for you
t = params['cur_time'] # The time value is available as
# `cur_time` in the dictionary
x_dot = np.array([[x[1]],
[-x[0]-.1*x[0]**3-.1*x[1]+1*sin(omega*t)]])
return x_dot
In [79]:
function = duff_osc_ss
function(np.array([1,1]), params = {'cur_time':1, 'omega':2})
Out[79]:
In [81]:
def new_sdfunc(x, t, params):
params['cur_time'] = t
return function(x, params)
In [83]:
new_sdfunc(np.array([1,1]), 1, params = {'cur_time':1, 'omega':2})
Out[83]:
In [86]:
print("""hello\
world""")
In [87]:
params
Out[87]:
In [90]:
params(2)
In [105]:
if 'sdfunc_params' not in globals():
print("Define your parameters in the user created `sdfunc_params`",
"dictionary.")
sdfunc_params = {}
In [104]:
del(sdfunc_params)
In [109]:
import numpy as np
In [110]:
np.arctan2(1,1)
Out[110]:
In [114]:
fun = lambda x: np.arctan2(1,x)
In [115]:
fun(1)
Out[115]:
In [116]:
fun(2)
Out[116]:
In [ ]: