Dynamics module

Dynamics module, adapted from DE_library.

TODO: clean this up

MARBLE.dynamics.fun_vanderpol(par=None)[source]

Van der parol oscillator exhibiting a degenerate Hopf bifurcation

MARBLE.dynamics.load_ODE(whichmodel, par=None)[source]

Load ODE system.

Parameters:
  • whichmodel (string) – ODE system from ODE_library.py

  • par (dict, optional) – parameters. The default is None

Returns:

ODE function jac (Callable): Jacobian

Return type:

f (Callable)

MARBLE.dynamics.solve_ODE(f, jac, t, x0, solver='standard')[source]

Solve ODE.

MARBLE.dynamics.addnoise(X, **noise_pars)[source]

Add noise to trajectories.

Parameters:
  • X (numpy array) – Trajectories

  • noise_pars – additional keyword argument to specify noise parameters

Returns:

X (len(t)xlen(X0) numpy array) Trajectory

MARBLE.dynamics.simulate_ODE(whichmodel, t, X0, par=None, **noise_pars)[source]

Load ODE functions and run appropriate solver.

Parameters:
  • whichmodel (string) – ODE system from ODE_library.py

  • t (array or list) – Time steps to evaluate system at

  • x0 (array or list) – Initial condition. Size must match the dimension of the ODE system

  • par (dict, optional) – Parameters. The default is None

Returns:

Solution Xprime (list): Time derivative of solution

Return type:

X (list)

MARBLE.dynamics.simulate_trajectories(whichmodel, X0_range, t=1, par=None, **noise_pars)[source]

Compute a number of trajectories from the given initial conditions.

Parameters:
  • simulate_ODE() (Same as in)

  • except

  • whichmodel (string) – ODE system from ODE_library.py

  • X0_range (list(list)) – List of initial conditions

  • t (array or list) – Time steps to evaluate system at

  • par (dict, optional) – Parameters. The default is None

  • noise_pars – additional keyword argument to specify noise parameters

Returns:

Solution for all trajectories Xprime_list (list): Time derivative of solution for all trajectories

Return type:

X_list (list(list))

MARBLE.dynamics.reject_outliers(*args, min_v=-5, max_v=5)[source]

Reject outliers.

MARBLE.dynamics.parabola(X, Y, alpha=0.05)[source]

Parabola.

MARBLE.dynamics.embed_parabola(pos, vel, alpha=0.05)[source]

Embed on parabola.

MARBLE.dynamics.sample_2d(N=100, interval=None, method='uniform', seed=0)[source]

Sample N points in a 2D area.

MARBLE.dynamics.initial_conditions(n, reps, area=None, seed=0)[source]

Generate iniital condition.

MARBLE.dynamics.simulate_vanderpol(mu, X0, t, keep_v=False)[source]

Simulate vanderpol.