Hi Mohit, 

Ok great, I suspected this was the idea but it was not so clear from the 
proposal. I think it is a good move forward in creating a better structured 
ODE solver. It will make it easier to debug and improve individual solvers 
and gives a good structure to the overall DE solver.  

Best regards,
Nijso

On Friday, 2 April 2021 at 19:42:11 UTC+2 mohitbalw...@gmail.com wrote:

> Hi Nijso,
>
> Thanks for the feedback. 
> Basic Idea is to implement an independent class for each solver and then 
> from master ode.py we will just iterate and check if it matches the solver 
> it will return the solution. Here is the issue link where Oscar suggested 
> this approach : Link <https://github.com/sympy/sympy/issues/18348>.
> For Now each class will have their own get_general_solution() which 
> returns the solution by that solver. I think after classifying them in 
> these two major categories, then we can move ahead with merging.
> I will try to add more details in the proposal for sure.
>
> regards,
> Mohit
>
> On Fri, Apr 2, 2021 at 12:04 AM nijso.be...@gmail.com <
> nijso.be...@gmail.com> wrote:
>
>> Hi Mohit,
>>
>> I looked at your proposal. It is not clear to me what the result of the 
>> refactoring would be in terms of the algorithmic implementation or the 
>> benefits to the ODE solver. Is it the idea to have independent classes and 
>> therefore solvers for each of the ODE solvers and classifiers, that can 
>> then be called from a master ODE solver class, and that can be called 
>> independently?  
>> In any case I wouldn't use regular pattern matching to check if an ODE 
>> belongs to a certain class, as this almost never works consistently and 
>> reliably, the preferred approach is to use functional operators like 
>> differentiation to determine the class (like for exact ODEs). For instance 
>> the well-known example f(x,y) = exp(x*x + y*y) * (cos(x+y) + cos(x-y)) is 
>> separable. You can only find this with pattern matching if you follow a 
>> correct sequence of rewriting of the function using known rules for 
>> trigonometry, logarithms, etc. Your approach does not detail how to do the 
>> classifications of all the ODEs besides the mention of 'pattern matching'. 
>> Your proposal for ode.py to loop over the implemented subsolvers, check 
>> if it matches the 'pattern' and then solve if it matches makes sense. But 
>> how much of the get_solution() part is shared by the different subsolvers? 
>> A number of the current subsolvers are actually the same, like the 
>> subsolvers based on undetermined coefficients,characteristic or homogeneous 
>> equations, there could be some merging here. Also, how is the order of the 
>> calls to the different subsolvers determined?  Then finally, there should 
>> be some further refinement in the classification, like first classifying as 
>> a scalar ODE, then determine the order, then go through the available 
>> options for this order (since most methods only work for a specific order 
>> of the ODE), this is not clear from the how you tackle this.
>>
>> Just some ideas, all the best,
>> Nijso
>>
>> On Thursday, 1 April 2021 at 16:31:23 UTC+2 mohitbalw...@gmail.com wrote:
>>
>>> Hello everyone, 
>>> I wanted to share my GSoC proposal if someone can provide a feedback, it 
>>> would be really helpful.
>>> Here is the  Link 
>>> <https://docs.google.com/document/d/1slfj2CJRgKpmf0zOW93YkxYUDUvutTmkDX6BmsFfmIs/edit?usp=sharing>
>>> .
>>>
>>> regards,
>>> Mohit
>>>
>> -- 
>> 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+un...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/sympy/bb2579ce-bdfa-46b4-a48f-f52a822b63d3n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/sympy/bb2579ce-bdfa-46b4-a48f-f52a822b63d3n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/35207604-bdeb-4412-817a-9c697b595eb7n%40googlegroups.com.

Reply via email to