stan-dev / math

The Stan Math Library is a C++ template library for automatic differentiation of any order using forward, reverse, and mixed modes. It includes a range of built-in functions for probabilistic modeling, linear algebra, and equation solving.
https://mc-stan.org
BSD 3-Clause "New" or "Revised" License
753 stars 188 forks source link

Analytic evolve functions (ODE) #95

Open syclik opened 9 years ago

syclik commented 9 years ago

From @betanalpha on May 21, 2015 12:55

In ODE models some components can be solved analytically such that some state components are given in closed form and some need to be solved numerically. To maintain code consistency in these models it would be nice to have a function that parallels integrate_ode but instead of calling an ODE solver to evolve the state just applies a user-defined function,

real[] evolve_state(function, y0, t0, ts, theta, x_r, x_i) {
  real y[size(y0), size(ts)];
  y[,0] = y0;
  for (n in 1:size(ts))
    y[,n] = function(y[,n - 1], ts[n], theta, x_r, x_i)
  return y;
}

Copied from original issue: stan-dev/stan#1456

syclik commented 2 years ago

This would be awesome to have.