# brainpy.integrators.sde.Milstein#

class brainpy.integrators.sde.Milstein(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]#

Milstein method for Ito or Stratonovich integrals.

The Milstein scheme represents the order 1.0 strong Taylor scheme. For the Ito integral,

\begin{split}\begin{aligned} &Y_{n+1}=Y_{n}+f_{n} h+g_{n} \Delta W_{n}+\frac{1}{2} g_{n} g_{n}^{\prime}\left[\left(\Delta W_{n}\right)^{2}-h\right] \\ &\Delta W_{n}=\left[W_{t+h}-W_{t}\right] \sim \sqrt{h} \mathcal{N}(0,1) \end{aligned}\end{split}

where $$g_{n}^{\prime}=\frac{d g\left(Y_{n}\right)}{d Y_{n}}$$ is the first derivative of $$g_n$$.

For the Stratonovich integral, the Milstein method is given by

\begin{split}\begin{aligned} &Y_{n+1}=Y_{n}+f_{n} h+g_{n} \Delta W_{n}+\frac{1}{2} g_{n} g_{n}^{\prime}\left(\Delta W_{n}\right)^{2} \\ &\Delta W_{n}=\left[W_{t+h}-W_{t}\right] \sim \sqrt{h} \mathcal{N}(0,1) \end{aligned}\end{split}
__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.