On Wed, 17 Mar 2021 at 13:54, [email protected] <[email protected]> wrote: > > I've started with a document: > https://github.com/sympy/sympy/wiki/ODE-solver-roadmap
Yes, that looks good as an overall roadmap. It's written at the level that I can understand although I'd have to take time at some point to read some of the references. For GSOC students we might need to break it down into more explicit tasks but that should be done on the GSOC ideas page rather than in the roadmap though. A good description like this is really helpful for other contributors as well. It's good if the document can be as clear as possible with examples and can make it clear what the current state of the solvers in sympy is (e.g. there is a Lie group solver but I'm guessing it doesn't come close to what you're describing in the 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). I can certainly help if you are unsure how to make regression tests! Mohit Balwani has recently refactored the ODE test suite into more of a database format which you can see here: https://github.com/sympy/sympy/blob/master/sympy/solvers/ode/tests/test_single.py The examples there are not really systematic though. Mostly they come from either the author who added a particular method choosing examples that happen to work with that method or otherwise bug reports from users. There can be a reasonable rationale I think in having a database of examples from users coming in as bug reports since it shows what kinds of things people are trying to use the solver for but it is not like having the Kamke examples as a database. I would be interested just to see how dsolve currently measures. > 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) I'll need to take some time to read through these things at some point. Your input on this would be extremely helpful as we don't have anyone involved in the ode module who has the level of experience that you have. At the moment most work is on improving the pattern matching system which is itself slow and badly organised. 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAHVvXxQUTt62ZSNvDEhpZYbYZNSXd7Y%2B5j%3DiW%3Db0kRYw1MomGw%40mail.gmail.com.
