I'm trying to plot a bifurcation diagram for a single neuron recurrent neural network. At the moment, I'm plotting the diagram of b against x, but really want to plot b against y (a non-linear but monotonic transformation of x). When I try changing "PC.display(['b','x'], stability=True, figure=3) " to 'y' instead of 'x' I get a key error saying "Coordinate y is not defined". Is there an easy solution to this?
The solution I have at the moment is to apply the sigmoid function to X[1,:] inside the continuation class (and apply it to the special points too). However, this is a pretty hacky solution, even after I clean it up a bit. Is there a way of doing this without having to change any PyDSTool files?
Last edit: Danny Wood 2016-06-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, Danny. It's been awhile since I've taken a look at the code, but I'm pretty sure that auxvars are not updated during continuation, at least in a way that they are accessible. Your solution is in effect something similar to what I would do to add this functionality, i.e. evaluate auxvars during continuation and bifurcation point detection.
Drew
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Maybe what's best here, given our lack of resources, is for Danny to submit a PR for his code (with enough documentation for us to follow it) and we can attempt to clean it up as best as we can and make use of it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It is actually a little bit more complicated than computing the auxiliary
variables in the plot function only.
Indeed this would work for EP-C curves but not for Limit cycle curves. The
problem is that PyCont does not give back the whole limit cycle at each
points but only a some special points. The rest of the time only some
"statistics", e.g. min, max or average values of the limit cycle are
returned (cf the discussion 2 years ago).
Most importantly, the LP-C curve cannot be calculated if auxiliary
variables are used in the dynamical system. The #define line corresponding
to them are not added to the C source code for the Auto "integrator". I
fixed https://github.com/F-A/pydstool/commit/3c34e2237e1f5a8f8743f67898849e582800a9b6
it 2 years ago and sent a PR to Drew, but I cannot find it in the current
version of the PyDSTool main repo.
I'm trying to plot a bifurcation diagram for a single neuron recurrent neural network. At the moment, I'm plotting the diagram of b against x, but really want to plot b against y (a non-linear but monotonic transformation of x). When I try changing "PC.display(['b','x'], stability=True, figure=3) " to 'y' instead of 'x' I get a key error saying "Coordinate y is not defined". Is there an easy solution to this?
The solution I have at the moment is to apply the sigmoid function to X[1,:] inside the continuation class (and apply it to the special points too). However, this is a pretty hacky solution, even after I clean it up a bit. Is there a way of doing this without having to change any PyDSTool files?
Last edit: Danny Wood 2016-06-28
Hi, Danny. It's been awhile since I've taken a look at the code, but I'm pretty sure that auxvars are not updated during continuation, at least in a way that they are accessible. Your solution is in effect something similar to what I would do to add this functionality, i.e. evaluate auxvars during continuation and bifurcation point detection.
Drew
Maybe what's best here, given our lack of resources, is for Danny to submit a PR for his code (with enough documentation for us to follow it) and we can attempt to clean it up as best as we can and make use of it.
Thanks both. I'll try to submit a PR in the next day or so.
Hi all,
I already had a problem with auxiliary variables 2 years ago.
https://sourceforge.net/p/pydstool/discussion/472291/thread/58f70ac0/
It is actually a little bit more complicated than computing the auxiliary
variables in the plot function only.
Indeed this would work for EP-C curves but not for Limit cycle curves. The
problem is that PyCont does not give back the whole limit cycle at each
points but only a some special points. The rest of the time only some
"statistics", e.g. min, max or average values of the limit cycle are
returned (cf the discussion 2 years ago).
Most importantly, the LP-C curve cannot be calculated if auxiliary
variables are used in the dynamical system. The #define line corresponding
to them are not added to the C source code for the Auto "integrator". I
fixed
https://github.com/F-A/pydstool/commit/3c34e2237e1f5a8f8743f67898849e582800a9b6
it 2 years ago and sent a PR to Drew, but I cannot find it in the current
version of the PyDSTool main repo.
Best,
Florian
2016-06-28 16:33 GMT+02:00 Danny Wood dwood04@users.sf.net: