1. in case 1 r_1=1, in case 3 r_i is not relevant since it's a simple pole. 2. The definition of the valuation at infinity is mentioned in section 5.1 3. yes, I think so 4. I think he just means using the method of undetermined coefficients here
Some ideas are also explained in the first chapter of Fritz Schwarz' book: Algorithmic Lie theory for solving Ordinary Differential Equations. I think this chapter gives a good introduction, although it is going through the material at a high speed. Best, Nijso On Tuesday, 23 March 2021 at 13:45:19 UTC+1 [email protected] wrote: > Hi Nijso, > > I have some doubts regarding Algorithm 11 > <https://www3.risc.jku.at/publications/download/risc_5387/PhDThesisThieu.pdf>. > > Please help me understand them - > > 1. In case 1 and 3 (Pg 79-80), is the value of r_i = 1? > 2. How do we find the valuation v_inf(a(x))? > 3. In step 7 of Algorithm 11 (Pg 82), it says we have to do the following > for "all possible combinations of these vectors". Since we have 1 vector > (d_-1, d_0, ..., d_N) and 2 vectors (c_i1, c_i2, ...) for each singular > point, does all possible combinations mean 2^n combinations (where n is the > number of singular points) as we can pick one of the two for each singular > point? > 4. The paper mentions that all polynomial solutions of degree m for the > equation 5.16 (Pg 81) can be done using Linear Algebra. Could you please > elaborate on any algorithm to do so? > > Lastly, finding the coefficient vectors requires Laurent Series expansion. > I'm not sure if the series module can achieve this. There seems to be a > function laurent_series > <https://github.com/sympy/sympy/blob/ed83ca093f4c10d09b1edf624fd343de9966f225/sympy/integrals/risch.py#L1146>, > > but I couldn't understand the documentation. Perhaps Oscar could help us > out here. > > Naveen > > On Friday, March 19, 2021 at 7:11:06 PM UTC+5:30 [email protected] > wrote: > >> 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 [email protected] 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, [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/77966f44-6303-42e2-a372-797fe09dbf10n%40googlegroups.com.
