MilsteinGradFree

Contents

MilsteinGradFree#

class brainpy.integrators.sde.MilsteinGradFree(f, g, dt=None, name=None, show_code=False, var_type=None, intg_type=None, wiener_type=None, state_delays=None)[source]#

Derivative-free Milstein method for Ito or Stratonovich integrals.

The following implementation approximates the frist derivative of \(g\) thanks to a Runge-Kutta approach. For the Ito integral, the derivative-free 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 \sqrt{h}}\left[g\left(\bar{Y}_{n}\right)-g_{n}\right]\left[\left(\Delta W_{n}\right)^{2}-h\right] \\ \bar{Y}_{n} &=Y_{n}+f_{n} h+g_{n} \sqrt{h} \\ \Delta W_{n} &=\left[W_{t+h}-W_{t}\right] \sim \sqrt{h} \mathcal{N}(0,1) \end{aligned}\end{split}\]

For the Stratonovich integral, the derivative-free 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 \sqrt{h}}\left[g\left(\bar{Y}_{n}\right)-g_{n}\right]\left(\Delta W_{n}\right)^{2} \\ \bar{Y}_{n} &=Y_{n}+f_{n} h+g_{n} \sqrt{h} \\ \Delta W_{n} &=\left[W_{t+h}-W_{t}\right] \sim \sqrt{h} \mathcal{N}(0,1) \end{aligned}\end{split}\]