Hi Naveen,

Algorithm 11 is more general, as it is not limited to finding the rational 
general solution. I'm not sure how many cases will be missed by using 
algorithm 4, but in any case algorithm 11 is the one that is needed also 
for an extension to Kovacic algorithm. Preferably, algorithm 11 should then 
be set up in such a way that Kovacic method can easily call it, an alg.11 
cal also later be called by a solver for first order rational ODEs that are 
not Riccati.

the algorithm is also in the paper:

https://www3.risc.jku.at/publications/download/risc_5269/RISCReport1601.pdf

For the Kamke database, we would need a list of ODEs and a list of 
solutions, and we need to find out which of these ODEs are directly 
solvable by the method. We might need additional ODEs from the paper, 
thesis, or our own to cover all cases.

Best regards,
Nijso

On Friday, 19 March 2021 at 07:23:10 UTC+1 naveensai...@gmail.com wrote:

> Hi Nijso,
>
> I went through the roadmap and found that the paper  Rational and 
> algebraic solutions of first-order algebraic ODEs 
> <https://www3.risc.jku.at/publications/download/risc_5387/PhDThesisThieu.pdf> 
> has 
> a very detailed and simple-to-understand approach for finding solutions of 
> the Riccati Equation. However, there are 2 algorithms in the paper - 
> Algorithm 4 (Pg 59) which computes rational general solutions and Algorithm 
> 11 (Pg 82), which computes rational solutions of the equation. Which one is 
> more general and is better to be implemented?
>
> For the ODE test database, 12000.org has a listing of problems at 
> https://www.12000.org/my_notes/kamek/maple_listing.txt for Kamke ODEs. If 
> we require metadata about the ODEs, there is a general classification given 
> in Table 2 
> <https://www.12000.org/my_notes/kamek/mma_12_1_maple_2020/KEse1.htm#x3-2010r2>.
>  
> For detailed info, we could even parse the HTML pages for each ODE. A 
> similar structure exists for Murphy ODEs, so it may not be very difficult 
> to port these examples into SymPy using parse_expr or even the latex parser.
>
> Naveen
>
> On Thursday, March 18, 2021 at 2:57:55 AM UTC+5:30 Oscar wrote:
>
>> On Wed, 17 Mar 2021 at 13:54, nijso.be...@gmail.com 
>> <nijso.be...@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/e21f22d0-e0af-4c59-91f7-763f3dbb724an%40googlegroups.com.

Reply via email to