Skip to content

Commit 12b7886

Browse files
authored
Merge pull request #103 from PKU-NIP-Lab/V2.1.1
fix #99; provide documentation for FDE solvers
2 parents bf94710 + 4ba13bf commit 12b7886

File tree

4 files changed

+714
-2
lines changed

4 files changed

+714
-2
lines changed

brainpy/integrators/fde/GL.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,15 @@ def __init__(self, f, alpha, num_memory, inits, dt=None, name=None):
146146
# binomial coefficients
147147
bc = (1 - (1 + self.alpha.reshape((-1, 1))) / jnp.arange(1, num_memory + 1))
148148
bc = jnp.cumprod(jnp.vstack([jnp.ones_like(self.alpha), bc.T]), axis=0)
149-
self.binomial_coef = jnp.flip(bc[1:], axis=0)
149+
self._binomial_coef = jnp.flip(bc[1:], axis=0)
150150

151151
# integral function
152152
self.set_integral(self._integral_func)
153153

154+
@property
155+
def binomial_coef(self):
156+
return bm.as_numpy(jnp.flip(self._binomial_coef, axis=0))
157+
154158
def _integral_func(self, *args, **kwargs):
155159
# format arguments
156160
all_args = format_args(args, kwargs, self.arguments)
@@ -173,7 +177,7 @@ def _integral_func(self, *args, **kwargs):
173177
integrals = []
174178
idx = (self._idx + bm.arange(self.num_memory)) % self.num_memory
175179
for i, var in enumerate(self.variables):
176-
summation = self.binomial_coef[:, i] @ self.delays[var][idx]
180+
summation = self._binomial_coef[:, i] @ self.delays[var][idx]
177181
integral = (dt ** self.alpha[i]) * devs[var] - summation
178182
self.delays[var][self._idx[0]] = integral
179183
integrals.append(integral)

brainpy/integrators/fde/base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
from brainpy.errors import UnsupportedError
1111

1212

13+
__all__ = [
14+
'FDEIntegrator'
15+
]
16+
17+
1318
class FDEIntegrator(Integrator):
1419
"""Numerical integrator for fractional differential equations (FEDs).
1520

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ The code of BrainPy is open-sourced at GitHub:
5858
tutorial_toolbox/ode_numerical_solvers
5959
tutorial_toolbox/sde_numerical_solvers
6060
tutorial_toolbox/dde_numerical_solvers
61+
tutorial_toolbox/fde_numerical_solvers
6162
tutorial_toolbox/joint_equations
6263
tutorial_toolbox/synaptic_connections
6364
tutorial_toolbox/synaptic_weights

docs/tutorial_toolbox/fde_numerical_solvers.ipynb

Lines changed: 702 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)