Template Class MilsteinIntegrator

Inheritance Relationships

Base Type

Class Documentation

template<system_state StateType>
class MilsteinIntegrator : public diffeq::sde::AbstractSDEIntegrator<StateType>

Milstein method for SDEs.

First-order strong method with correction term: X_{n+1} = X_n + f(t_n, X_n) * dt + g(t_n, X_n) * dW_n + 0.5 * g(t_n, X_n) * g’(t_n, X_n) * (dW_n^2 - dt)

Strong order: 1.0 Weak order: 1.0

Note: Requires derivative of diffusion function g’(t, X)

Public Types

using base_type = sde::AbstractSDEIntegrator<StateType>
using state_type = typename base_type::state_type
using time_type = typename base_type::time_type
using value_type = typename base_type::value_type
using diffusion_derivative_function = std::function<void(time_type, const state_type&, state_type&)>

Public Functions

inline explicit MilsteinIntegrator(std::shared_ptr<typename base_type::sde_problem_type> problem, diffusion_derivative_function diffusion_derivative, std::shared_ptr<typename base_type::wiener_process_type> wiener = nullptr)
inline virtual void step(state_type &state, time_type dt) override
inline virtual std::string name() const override