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
RKMilmethod (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
-
virtual void integrate(double currentTime, double timeStep) override