|
121 | 121 | } |
122 | 122 | }, |
123 | 123 | "source": [ |
124 | | - "As known to us all, this functuon has multiple fixed points ($\\frac{dx}{dt} = 0$) when $I=0$." |
| 124 | + "As known to us all, this function has multiple fixed points ($\\frac{dx}{dt} = 0$) when $I=0$." |
125 | 125 | ] |
126 | 126 | }, |
127 | 127 | { |
|
269 | 269 | } |
270 | 270 | }, |
271 | 271 | "source": [ |
272 | | - "Yeah, absolutelty, ``brainpy.analysis.PhasePlane1D`` gives us the right fixed points, and correctly evalutes the stability of these fixed points. " |
| 272 | + "Yeah, absolutelty, ``brainpy.analysis.PhasePlane1D`` gives us the right fixed points, and correctly evaluates the stability of these fixed points." |
273 | 273 | ] |
274 | 274 | }, |
275 | 275 | { |
|
280 | 280 | } |
281 | 281 | }, |
282 | 282 | "source": [ |
283 | | - "Phase plane is important, because it give us the intuitive understanding how the system evolves with the given parameters. However, in most cases where we care about how the parameters affect the system behaviors, we should make bifurcation analysis. [brainpy.analysis.Bifurcation1D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.Bifurcation1D.rst) is a convenient interface to help you get the insights of how the dynamics of a 1D system changes with parameters. \n", |
| 283 | + "Phase plane is important, because it gives us the intuitive understanding how the system evolves with the given parameters. However, in most cases where we care about how the parameters affect the system behaviors, we should make bifurcation analysis. [brainpy.analysis.Bifurcation1D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.Bifurcation1D.rst) is a convenient interface to help you get the insights of how the dynamics of a 1D system changes with parameters.\n", |
284 | 284 | "\n", |
285 | 285 | "Similar to ``brainpy.analysis.PhasePlane1D``, ``brainpy.analysis.Bifurcation1D`` receives arguments like \"model\", \"target_vars\", \"pars_update\", and \"resolutions\". Besides, one more important argument **\"target_pars\"** should be provided, which specifies the range of the target parameter in bifurcation analysis." |
286 | 286 | ] |
|
293 | 293 | } |
294 | 294 | }, |
295 | 295 | "source": [ |
296 | | - "Here, we systematically change the parameter \"Iext\" from 0 to 1.5. According to the bifurcation theory, we know this simple system has a fold bifurcation when $I=1.0$. Because at $I=1.0$, two fixed points collide with each other into a saddle point and then disappear. Does BrainPy's analysis toolkit ``brainpy.analysis.Bifurcation1D`` is capable of performing these analysis? Let's make a try." |
| 296 | + "Here, we systematically change the parameter \"Iext\" from 0 to 1.5. According to the bifurcation theory, we know this simple system has a fold bifurcation when $I=1.0$. Because at $I=1.0$, two fixed points collide with each other into a saddle point and then disappear. Does BrainPy's analysis toolkit ``brainpy.analysis.Bifurcation1D`` is capable of performing these analyses? Let's make a try." |
297 | 297 | ] |
298 | 298 | }, |
299 | 299 | { |
|
355 | 355 | } |
356 | 356 | }, |
357 | 357 | "source": [ |
358 | | - "It is worthy to note that bifurcation analysis in BrainPy is hard to find out the saddle point (when $I=0$ for this system). This is because the saddle point at the bifurcation just exists at a moment. While the numerical method used in BrainPy analysis toolkit is almost impossible to evaluate the point exactly at the saddle. However, if the user has the minimal knowledge about the bifurcation theory, saddle point (the collision point of two fixed points) can be easily infered from the fixed point evolution." |
| 358 | + "It is worthy to note that bifurcation analysis in BrainPy is hard to find out the saddle point (when $I=0$ for this system). This is because the saddle point at the bifurcation just exists at a moment. While the numerical method used in BrainPy analysis toolkit is almost impossible to evaluate the point exactly at the saddle. However, if the user has the minimal knowledge about the bifurcation theory, saddle point (the collision point of two fixed points) can be easily inferred from the fixed point evolution." |
359 | 359 | ] |
360 | 360 | }, |
361 | 361 | { |
|
388 | 388 | } |
389 | 389 | }, |
390 | 390 | "source": [ |
391 | | - "Phase plane analysis is one of the most important techniques for studying the behavior of nonlinear systems, since there is usually no analytical solution for a nonlinear system. BrainPy can help users to plot phase plane of 1D systems or 2D systems. Specifically, we provides [brainpy.analysis.PhasePlane1D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.PhasePlane1D.rst) and [brainpy.analysis.PhasePlane2D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.PhasePlane2D.rst). It can help to plot:\n", |
| 391 | + "Phase plane analysis is one of the most important techniques for studying the behavior of nonlinear systems, since there is usually no analytical solution for a nonlinear system. BrainPy can help users to plot phase plane of 1D systems or 2D systems. Specifically, we provide [brainpy.analysis.PhasePlane1D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.PhasePlane1D.rst) and [brainpy.analysis.PhasePlane2D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.PhasePlane2D.rst). It can help to plot:\n", |
392 | 392 | "\n", |
393 | 393 | "- **Nullcline**: The zero-growth isoclines, such as $g(x, y)=0$ and $g(x, y)=0$.\n", |
394 | | - "- **Fixed points**: The equilibrium points of the system, which are located at all of the nullclines intersect.\n", |
| 394 | + "- **Fixed points**: The equilibrium points of the system, which are located at all the nullclines intersect.\n", |
395 | 395 | "- **Vector field**: The vector field of the system.\n", |
396 | 396 | "- **Limit cycles**: The limit cycles.\n", |
397 | 397 | "- **Trajectories**: A simulation trajectory with the given initial values." |
|
710 | 710 | "It is highly recommended that users specify the resolution to specific parameters or variables by a dict rather than set a float value, which will be applied to all variables. Otherwise, the computation will occupy too much memory if the resolution is set very small. For example, if you want to set the resolution of variable `x` as 0.01, please use `resolutions={'x': 0.01}`.\n", |
711 | 711 | "```\n", |
712 | 712 | "\n", |
713 | | - "Enabling set ``resolutions`` with a tensor will give the user the maximal flexibility. Usually, the numerical alalysis does not work well at inflection points. Therefore, we can increase the granularity near the inflection points. For example, if there is an inflextion point at $1$, we can set the resolution with:" |
| 713 | + "Enabling set ``resolutions`` with a tensor will give the user the maximal flexibility. Usually, the numerical analysis does not work well at inflection points. Therefore, we can increase the granularity near the inflection points. For example, if there is an inflection point at $1$, we can set the resolution with:" |
714 | 714 | ] |
715 | 715 | }, |
716 | 716 | { |
|
825 | 825 | } |
826 | 826 | }, |
827 | 827 | "source": [ |
828 | | - "We will first see the codimension 1 bifurcation anlysis of the model. For example, we vary the input $I_{ext}$ between 0 to 1 and see how the system change it's stability." |
| 828 | + "We will first see the codimension 1 bifurcation analysis of the model. For example, we vary the input $I_{ext}$ between 0 and 1 and see how the system change its stability." |
829 | 829 | ] |
830 | 830 | }, |
831 | 831 | { |
|
996 | 996 | "BrainPy also provides a tool for fast-slow system bifurcation analysis by using [brainpy.analysis.FastSlow1D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.FastSlow1D.rst) and [brainpy.analysis.FastSlow2D](../apis/auto/analysis/generated/brainpy.analysis.lowdim.FastSlow2D.rst). This method is proposed by John Rinzel [1, 2, 3]. (J Rinzel, 1985, 1986, 1987) proposed that in a fast-slow dynamical system, we can treat the slow variables as the bifurcation parameters, and then study how the different value of slow variables affect the bifurcation of the fast sub-system.\n", |
997 | 997 | "\n", |
998 | 998 | "\n", |
999 | | - "Fast-slow bifurcation methods are very usefull in the bursting neuron analysis. I will illustrate this by using the Hindmarsh-Rose model. The Hindmarsh–Rose model of neuronal activity is aimed to study the spiking-bursting behavior of the membrane potential observed in experiments made with a single neuron. Its dynamics are governed by:\n", |
| 999 | + "Fast-slow bifurcation methods are very useful in the bursting neuron analysis. I will illustrate this by using the Hindmarsh-Rose model. The Hindmarsh–Rose model of neuronal activity is aimed to study the spiking-bursting behavior of the membrane potential observed in experiments made with a single neuron. Its dynamics are governed by:\n", |
1000 | 1000 | "\n", |
1001 | 1001 | "$$\n", |
1002 | 1002 | "\\begin{aligned}\n", |
|
1015 | 1015 | } |
1016 | 1016 | }, |
1017 | 1017 | "source": [ |
1018 | | - "First of all, let's define the Hindmarsh–Rose model with BrainPy. " |
| 1018 | + "First, let's define the Hindmarsh–Rose model with BrainPy." |
1019 | 1019 | ] |
1020 | 1020 | }, |
1021 | 1021 | { |
|
0 commit comments