svStochasticIntegratorRKMil

class svStochasticIntegratorRKMil : public StochasticRKIntegratorBase
#include <svStochasticIntegratorRKMil.h>

The Runge-Kutta Milstein stochastic integrator (strong order 1.0) for Ito SDEs with diagonal or scalar noise.

For an Ito SDE of the form:

\[ dx = f(t,x)\,dt + \sum_i g_i(t,x)\,dW_i \]

with time step \(h\) and Wiener increments \(\Delta W_i \sim N(0,h)\), the integrator computes:

\[ K = x_n + f(t_n,x_n)\,h, \quad L_i = g_i(t_n,x_n) \]
\[ \tilde{x} = K + \sum_i L_i\sqrt{h}, \quad (gg')_i = \frac{g_i(t_n,\tilde{x}) - L_i}{\sqrt{h}} \]
\[ x_{n+1} = K + \sum_i L_i\,\Delta W_i + \sum_i (gg')_i\,\frac{\Delta W_i^2 - h}{2} \]

The final term is a derivative-free (Runge-Kutta) approximation of the Milstein correction \(\tfrac12 g_i\,\partial_x g_i\,(\Delta W_i^2 - h)\), which is why this method needs no user-supplied Jacobian of the diffusion.

This is an implementation of the RKMil method (Ito interpretation). It is intended for diagonal or scalar noise.

Warning

Stochastic integration is in beta.

Public Functions

virtual void integrate(double currentTime, double timeStep) override

Performs the integration of the associated dynamic objects up to time currentTime+timeStep