brainpy.integrators.sde.Euler#
- class brainpy.integrators.sde.Euler(f, g, dt=None, name=None, show_code=False, var_type=None, intg_type=None, wiener_type=None, state_delays=None, dyn_vars=None)[source]#
Euler method for the Ito and Stratonovich integrals.
For Ito schema, the Euler method (also called as Euler-Maruyama method) is given by:
\[\begin{split}\begin{aligned} Y_{n+1} &=Y_{n}+f\left(Y_{n}\right) h_{n}+g\left(Y_{n}\right) \Delta W_{n} \\ \Delta W_{n} &=\left[W_{t+h}-W_{t}\right] \sim \sqrt{h} \mathcal{N}(0,1) \end{aligned}\end{split}\]As the order of convergence for the Euler-Maruyama method is low (strong order of convergence 0.5, weak order of convergence 1), the numerical results are inaccurate unless a small step size is used. In fact, Euler-Maruyama represents the order 0.5 strong Taylor scheme.
For Stratonovich scheme, the Euler-Heun method has to be used instead of the Euler-Maruyama method
\[\begin{split}\begin{aligned} Y_{n+1} &=Y_{n}+f_{n} h+\frac{1}{2}\left[g_{n}+g\left(\bar{Y}_{n}\right)\right] \Delta W_{n} \\ \bar{Y}_{n} &=Y_{n}+g_{n} \Delta W_{n} \\ \Delta W_{n} &=\left[W_{t+h}-W_{t}\right] \sim \sqrt{h} \mathcal{N}(0,1) \end{aligned}\end{split}\]See also
- __init__(f, g, dt=None, name=None, show_code=False, var_type=None, intg_type=None, wiener_type=None, state_delays=None, dyn_vars=None)[source]#
Methods
__init__
(f, g[, dt, name, show_code, ...])cpu
()Move all variable into the CPU device.
cuda
()Move all variables into the GPU device.
load_state_dict
(state_dict[, warn, compatible])Copy parameters and buffers from
state_dict
into this module and its descendants.load_states
(filename[, verbose])Load the model states.
nodes
([method, level, include_self])Collect all children nodes.
register_implicit_nodes
(*nodes[, node_cls])register_implicit_vars
(*variables[, var_cls])save_states
(filename[, variables])Save the model states.
set_integral
(f)Set the integral function.
state_dict
()Returns a dictionary containing a whole state of the module.
step
(*args, **kwargs)to
(device)Moves all variables into the given device.
tpu
()Move all variables into the TPU device.
train_vars
([method, level, include_self])The shortcut for retrieving all trainable variables.
tree_flatten
()Flattens the object as a PyTree.
tree_unflatten
(aux, dynamic_values)Unflatten the data to construct an object of this class.
unique_name
([name, type_])Get the unique name for this object.
vars
([method, level, include_self, ...])Collect all variables in this node and the children nodes.
Attributes
arguments
All arguments when calling the numer integrator of the differential equation.
dt
The numerical integration precision.
integral
The integral function.
name
Name of the model.
parameters
The parameters defined in the differential equation.
state_delays
State delays.
variables
The variables defined in the differential equation.