Stan Math Library
4.9.0
Automatic Differentiation
|
std::vector< Eigen::Matrix< stan::return_type_t< T_y0, T_t0, T_ts, T_Args... >, Eigen::Dynamic, 1 > > stan::math::ode_bdf | ( | const F & | f, |
const T_y0 & | y0, | ||
const T_t0 & | t0, | ||
const std::vector< T_ts > & | ts, | ||
std::ostream * | msgs, | ||
const T_Args &... | args | ||
) |
Solve the ODE initial value problem y' = f(t, y), y(t0) = y0 at a set of times, { t1, t2, t3, ... } using the stiff backward differentiation formula (BDF) solver in CVODES with defaults for relative_tolerance, absolute_tolerance, and max_num_steps.
f
must define an operator() with the signature as: template<typename T_t, typename T_y, typename... T_Args> Eigen::Matrix<stan::return_type_t<T_t, T_y, T_Args...>, Eigen::Dynamic, 1> operator()(const T_t& t, const Eigen::Matrix<T_y, Eigen::Dynamic, 1>& y,
std::ostream* msgs, const T_Args&... args);
t is the time, y is the vector-valued state, msgs is a stream for error messages, and args are optional arguments passed to the ODE solve function (which are passed through to f
without modification).
F | Type of ODE right hand side |
T_0 | Type of initial time |
T_ts | Type of output times |
T_Args | Types of pass-through parameters |
f | Right hand side of the ODE | |
y0 | Initial state | |
t0 | Initial time | |
ts | Times at which to solve the ODE at. All values must be sorted and not less than t0. | |
[in,out] | msgs | the print stream for warning messages |
args | Extra arguments passed unmodified through to ODE right hand side |
ts
Definition at line 150 of file ode_bdf.hpp.