Hi Oscar, 

I've started with a document: 
https://github.com/sympy/sympy/wiki/ODE-solver-roadmap

I think the first thing to do is build a kind of regression test using e.g. 
the database of first order ODEs from the book of Kamke and see where we 
stand. Maybe somebody already did this? I started with making my own 
regression test a couple of months ago but other projects demanded my 
attention. I'm not so familiar with making regression tests, so I'll 
probably get back to you about how to set this up properly (I think I 
wanted to get much more output like time statistics I have to check).

There is a nice website listing the performance of maple and mathematica 
for the ODE solvers:
http://www.12000.org/my_notes/kamek/mma_12_1_maple_2020/KEse1.htm#x3-20001

An ODE solver that I wrote (for the maxima CAS) based on the symmetry 
papers from Cheb-Terrab and from Schwarz gave me a performance of around 
86% for the first order, first degree ODEs, but very important classes are 
missing like solutions to Riccati and Bessel problems.
code:
https://github.com/bigfooted/maxima-odesolve/blob/master/ode1_lie.mac
with documentation here:
https://nbviewer.jupyter.org/github/bigfooted/maxima-odesolve/blob/master/Doc/ode1solve.ipynb

So by just making the existing symmetry solvers more robust we should get a 
similar performance without the solver getting stuck or crashing (I got 1 
stuck and 1 crash, both in the Risch integration routine)

Best regards,
Nijso

On Tuesday, 16 March 2021 at 10:53:30 UTC+1 Oscar wrote:

> On Tue, 16 Mar 2021 at 09:27, nijso.be...@gmail.com
> <nijso.be...@gmail.com> wrote:
> >
> >
> > A couple of ideas for improving the ODE solver capabilities are listed 
> on the GSoC project ideas page:
> > https://github.com/sympy/sympy/wiki/GSoC-Ideas#other-ode-ideas
> >
> > I propose a roadmap for a (first order) ODE solver that leads to a 
> structured and modular workflow where the individual functionalities can be 
> reused
>
> Hi Nijso,
>
> I completely agree with all of your very useful suggestions. What
> would be most useful is if you could write the ideas up in more detail
> e.g. on the sympy wiki.
>
> Last year I wrote something for improving the ODE systems solvers
> which you can see here:
> https://github.com/sympy/sympy/wiki/ODE-Systems-roadmap
>
> That led to a successful GSOC project that massively improved the very
> messy code that was there before for ODE systems. Most of the ideas
> from that roadmap got implemented and thousands of lines of buggy and
> repetitive code were replaced with some better more generalised code.
> The key point is that we are more likely to get well-prepared GSOC
> applications if the proposal for what needs doing is written up
> clearly enough with examples/references. (It doesn't need to be as
> explicit as the road map I wrote but we should try to be clear about
> exactly which paper to read, where to see existing implementations
> etc, how much would make sense for a single project, what background
> needed etc)
>
> Oscar
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/e1bc45fc-89dd-4c79-a351-354ccf9b4694n%40googlegroups.com.

Reply via email to