
Hi all, I opened an github issue [1] asking the following and was recommended to post it here. I am *proposing to add a new ODE solver* to the list of solvers available in solve_ivp. The solver I propose is the so called "*modified Patanka-Runge-Kutta" (MPRK)* [2] scheme. MPRK is a integration scheme that satisfies the condition of 'unconditional positivity', a requirement for many ODEs especially in the field of biochemical models. A simple and famous example of such a ODE being the Lotka-Volterra equations. So far there exists no such solver in scipy. Hence, a ODE solution with the present solvers can become "unphysical" and therefore invalid if the solution at a any time-step becomes negative due to numerical errors. If this is something the community agrees on adding I am happy to write the implementation. However, I would like to ask for assistance by a more experienced scipy dev as I am new to scipy. Cheers, Laurin [1] https://github.com/scipy/scipy/issues/12766 [2] https://doi.org/10.1016/S0168-9274(03)00101-6

Hi Laurin, On Thu, Aug 27, 2020 at 10:21 AM Laurin Steidle < laurin.steidle@uni-hamburg.de> wrote:
Hi all,
I opened an github issue [1] asking the following and was recommended to post it here.
I am *proposing to add a new ODE solver* to the list of solvers available in solve_ivp. The solver I propose is the so called "*modified Patanka-Runge-Kutta" (MPRK)* [2] scheme. MPRK is a integration scheme that satisfies the condition of 'unconditional positivity', a requirement for many ODEs especially in the field of biochemical models. A simple and famous example of such a ODE being the Lotka-Volterra equations.
So far there exists no such solver in scipy. Hence, a ODE solution with the present solvers can become "unphysical" and therefore invalid if the solution at a any time-step becomes negative due to numerical errors.
Thanks for proposing this. That would indeed be a nice addition to scipy.integrate it looks like. I'm not familiar with the method you propose, however the paper seems to have a good amount of citations.
If this is something the community agrees on adding I am happy to write the implementation. However, I would like to ask for assistance by a more experienced scipy dev as I am new to scipy.
We can help you out as needed. Following the code/test/doc pattern of a newer solver like `solve_ivp` should be a good start. Cheers, Ralf Cheers,
Laurin
[1] https://github.com/scipy/scipy/issues/12766 [2] https://doi.org/10.1016/S0168-9274(03)00101-6 _______________________________________________ SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev
participants (2)
-
Laurin Steidle
-
Ralf Gommers