Open nosratullah opened 4 months ago
This is a good question. I will show you inspirational examples, and their limitations.
Great! Maybe a good example is provided in this link with PyDSTool. It is a 4D predator-prey system with 2D bifurcation analysis.
Currently, brainpy does not implement the continuation analysis. However, we can do bifurcation analysis using fast-slow bifurcation analysis: fixing one variable first, then do bifurcation analysis of two remaining variables. For your cases, we can use:
@bp.odeint
def int_x(x, t, y, z, Iext, a):
return F(x,y,z, Iext, a)
@bp.odeint
def int_y(y, t, x, z, Iext, a):
return G(x,y,z, Iext, a)
@bp.odeint
def int_z(x, t, x, y, Iext, a):
return H(x,y,z, Iext, a)
analyzer = bp.analysis.FastSlow2D(
[int_x, int_y, int_z],
fast_vars={'x': [-3, 3], 'y': [-3., 3.]},
slow_vars={'z': [-3., 3.]},
pars_update={'a': 0.5, 'Iext': 0.5},
resolutions={'a': 0.01, 'Iext': 0.01}
)
analyzer.plot_bifurcation(num_rank=20)
analyzer.show_figure()
Hoping this message can help you.
Hi, Thanks for the awesome software. I was wondering if there's a way to do 2D bifurcation on more than 2D dynamical systems in your software.
Please:
@bp.odeint def int_y(y, t, x, z, Iext, a): return G(x,y,z, Iext, a) @bp.odeint def int_z(x, t, x, y, Iext, a): return H(x,y,z, Iext, a)
analyzer = bp.analysis.Bifurcation2D( model = [int_x, int_y, int_z], target_vars=dict(x=[-3, 3], y=[-3., 3.], z=[-3, 3]), target_pars=dict(a=[0.5, 1.], Iext=[0., 1.]), resolutions={'a': 0.01, 'Iext': 0.01}, ) analyzer.plot_bifurcation(num_rank=10, tol_aux=1e-9) analyzer.show_figure()