DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
|
Milstein method for SDEs. More...
#include <milstein.hpp>
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 &)> |
![]() | |
using | state_type = StateType |
using | time_type = typename StateType::value_type |
using | value_type = typename StateType::value_type |
using | sde_problem_type = SDEProblem< StateType > |
using | wiener_process_type = WienerProcess< StateType > |
Public Member Functions | |
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) | |
void | step (state_type &state, time_type dt) override |
std::string | name () const override |
![]() | |
AbstractSDEIntegrator (std::shared_ptr< sde_problem_type > problem, std::shared_ptr< wiener_process_type > wiener=nullptr) | |
void | integrate (state_type &state, time_type dt, time_type end_time) |
time_type | current_time () const |
void | set_time (time_type t) |
std::shared_ptr< sde_problem_type > | get_problem () const |
std::shared_ptr< wiener_process_type > | get_wiener_process () const |
void | set_wiener_process (std::shared_ptr< wiener_process_type > wiener) |
Additional Inherited Members | |
![]() | |
void | advance_time (time_type dt) |
virtual size_t | get_default_dimension () |
![]() | |
std::shared_ptr< sde_problem_type > | problem_ |
std::shared_ptr< wiener_process_type > | wiener_ |
time_type | current_time_ |
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)
Definition at line 22 of file milstein.hpp.
using diffeq::MilsteinIntegrator< StateType >::base_type = sde::AbstractSDEIntegrator<StateType> |
Definition at line 24 of file milstein.hpp.
using diffeq::MilsteinIntegrator< StateType >::diffusion_derivative_function = std::function<void(time_type, const state_type&, state_type&)> |
Definition at line 30 of file milstein.hpp.
using diffeq::MilsteinIntegrator< StateType >::state_type = typename base_type::state_type |
Definition at line 25 of file milstein.hpp.
using diffeq::MilsteinIntegrator< StateType >::time_type = typename base_type::time_type |
Definition at line 26 of file milstein.hpp.
using diffeq::MilsteinIntegrator< StateType >::value_type = typename base_type::value_type |
Definition at line 27 of file milstein.hpp.
|
inlineexplicit |
Definition at line 32 of file milstein.hpp.
|
inlineoverridevirtual |
Implements diffeq::sde::AbstractSDEIntegrator< StateType >.
Definition at line 77 of file milstein.hpp.
|
inlineoverridevirtual |
Implements diffeq::sde::AbstractSDEIntegrator< StateType >.
Definition at line 38 of file milstein.hpp.