Hello. I was wondering if there was a roadmap for ODE solver development. In particular, using
rk45 entails making four function evaluations per time step update. Implementing a method like Adams Bashforth Moulton or other linear multistep methods reduce the number of required function evaluations per time step, at the expense of more memory consumption.
It would be nice to be able to switch between such methods as the complexity of the function evaluation increases. Are there plans on implementing such methods?
The adams moulton from CVODES is already implemented in stan-math, but it has not yet made it into the language. Maybe you scan the stan repository for an issue to expose this function. If that is not yet there, then feel free to create one.
(I never found the adams moulton to be more useful than rk45…on my problems…)
Okay great. Linear Multistep methods are useful when the right hand side of
dx/dt = f(x,t) is “expensive” to compute. As I mentioned in my original post, Runge-Kutta 45 needs four evaluations of
f(x,t) to update one time step. A method like ABM4 would only require one evaluation of
f(x,t) per time step.
This is not true. I’m pretty sure it’s in the language (https://github.com/stan-dev/stan/pull/2543) since I use it on a daily basis. Why it’s not in the user guide, I don’t know.
While this is true, if the goal is solely efficiency one should keep in mind that rk45 is explicit while AM is not, and newton iteration does induce some cost, depends on the system to be solved.
@yizhang or @mathDR could you please file an issue for that documentation glitch?
@Bob_Carpenter or @mitzimorris I am not totally sure where doc issues go atm…could you please advise?