On Wed, 17 Mar 2021 at 13:54, nijso.be...@gmail.com
<nijso.beishui...@gmail.com> 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 sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAHVvXxQUTt62ZSNvDEhpZYbYZNSXd7Y%2B5j%3DiW%3Db0kRYw1MomGw%40mail.gmail.com.

Reply via email to