Hi Naveen, Oscar,
I agree with Oscar that there is still much work to be done, even having 
'only' the rational Riccati solver implemented and tested is still a lot of 
work, after all you have to implement and test all subcases (movable poles, 
fixed poles, poles at infinity). And the solver should not only work on the 
solvable ODEs, but should also not get stuck on ODEs that are not solvable 
using this method. Also sometimes we will find only special solutions and 
we would need to construct the general solution from them. Since this is a 
core solver for possibly many other solvers, it is important that it 
functions very well.

I have put the first 367 kamke odes (the ODEs of first order and first 
degree) in sympy format in a list, it is here: 
https://github.com/bigfooted/sympy_ode

I think a modular approach is best and the solver should consist of a 
number of independent functions that can be re-used elsewhere. For instance:
isRiccati(ode)  : return True if the input ODE is Riccati, False otherwise,
Riccati2Normal(ode) : returns the Riccati ode in normal form,
Poles(ode) : returns the poles, and their order and multiplicities, 
etc..
But I think you have made a good start.

Regarding the GSoC application: I would focus a bit more on that now, it's 
always good to be able to get some feedback before submitting (not sure how 
that works regarding independent reviewing, though).

Best regards,
Nijso


...



On Tuesday, 30 March 2021 at 08:34:12 UTC+2 naveensai...@gmail.com wrote:

> Hi Oscar,
>
> Should we add all the ODEs of Kamke and Murphy or only Riccati ODEs? In 
> either case, how do we plan on parsing the solution from Maple/Mathematica? 
> I could see that there is a Mathematica Parser, but even that seems to be 
> very basic and is not parsing some complex expressions.
>
> Naveen
> On Monday, March 29, 2021 at 7:17:25 PM UTC+5:30 Naveen Saisreenivas Thota 
> wrote:
>
>> > When reviewing GSOC applications (just speaking for myself - I am not
>> > the only reviewer) I am most interested in ensuring that we can get
>> > the best contributors who are capable of making the most valuable
>> > contributions to important parts of SymPy. What you are proposing here
>> > is a significant improvement to an important part of SymPy so the main
>> > points to focus on in your application are:
>> > 1) making it clear why this is important and how significant the 
>> improvement is
>> > 2) demonstrating that you personally understand what needs doing and
>> > are capable of doing the necessary work
>>
>> Okay, thank you for the advice, Oscar! I'll make the proposal and post it 
>> here so that you and others can review it.
>>
>> Naveen
>> On Monday, March 29, 2021 at 5:03:53 PM UTC+5:30 Oscar wrote:
>>
>>> On Mon, 29 Mar 2021 at 10:42, Naveen Saisreenivas Thota 
>>> <naveensai...@gmail.com> wrote: 
>>> > 
>>> > > I think you underestimate how much work is involved in really making 
>>> > > the implementation robust and complete. Note that it's much better 
>>> to 
>>> > > have a well-tested, complete, efficient implementation of a single 
>>> > > algorithm with nicely organised and documented code than it is to 
>>> have 
>>> > > multiple half-implemented algorithms. As Nijso emphasised earlier 
>>> the 
>>> > > most important thing first is to establish a systematic test base. 
>>> We 
>>> > > should get the Kamke examples in and you should verify that this 
>>> does 
>>> > > find all the rational function solutions for all of the Ricatti 
>>> ODEs. 
>>> > 
>>> > I was thinking as much, but I wanted to ask just to know your opinion 
>>> as well. I did test the current code with some examples, but I am yet to 
>>> test it with all of them. So, from what you say, I am planning to include 
>>> Rational Riccati Solver and ODE test bank (Kamke and Murphy) as the primary 
>>> items to be done and leave computation of rational solutions for a general 
>>> 1st order equation as a bonus? Will this be okay? 
>>>
>>> Yes, I think that sounds good. 
>>>
>>> Note, as I said in reply to some other queries about GSOC exactly what 
>>> you would or wouldn't achieve within the duration of the project is 
>>> less important than demonstrating that you are capable of making 
>>> significant contributions to SymPy. All tasks can turn out to be 
>>> harder or easier than expected so it's hard to estimate in advance 
>>> what is possible given a fixed timeframe. 
>>>
>>> When reviewing GSOC applications (just speaking for myself - I am not 
>>> the only reviewer) I am most interested in ensuring that we can get 
>>> the best contributors who are capable of making the most valuable 
>>> contributions to important parts of SymPy. What you are proposing here 
>>> is a significant improvement to an important part of SymPy so the main 
>>> points to focus on in your application are: 
>>> 1) making it clear why this is important and how significant the 
>>> improvement is 
>>> 2) demonstrating that you personally understand what needs doing and 
>>> are capable of doing the necessary work 
>>>
>>> Then if your application is successful and it turns out that (based on 
>>> the work you have already done) it is not hard to complete some of the 
>>> tasks listed then there is no shortage of other things to be done for 
>>> ODEs in SymPy. On the other hand if one of the tasks turns out to be 
>>> more involved than expected then it is better to limit the scope of 
>>> the project later and make sure that the parts that are implemented 
>>> are done well. 
>>>
>>> A general point that I often make to students is that (usually) it is 
>>> better to do half a job well than to do the whole job badly. If half a 
>>> job is done well then it makes a good starting point for someone in 
>>> future to finish that work. If the whole job is done badly it 
>>> potentially makes it more difficult for someone else to improve that 
>>> work than it would be for them if starting from scratch. 
>>>
>>> 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/938f63bd-1961-492f-ae31-376be90658acn%40googlegroups.com.

Reply via email to