Hi,

I am Mihir Wadwekar, a 3rd year undergrad pursuing computer science at IIIT 
Hyderabad. I have been tinkering with Sympy for some time now and have 
committed 4 patches in it.  I do understand how the codebase works and 
would like to work upon the ODE module as part of my GSOC 2015 project.

I am planning to extend the solving of 1st-order differential equations 
using lie groups to also include 2nd order differential equations. 

Currently for first-order differential equation, infinitesimals are 
generated which fit the linearized symmetry condition. Canonical 
co-ordinates are derived from these infinitesimals by solving relatively 
simpler PDE's. These coordinates on substitution make the equation a 
problem of quadrature. After solving it, the original variables are 
substituted back to get the solution.

Finding a pair of infinitesimals is the most difficult part of it. There is 
no easy way to generate them yet and as a result various intelligent 
guesses are made and tried out till one fits the symmetry condition and 
makes the ODE invariant. Similar procedure can be used for 2nd order 
differential equations. However their symmetry condition and the type of 
guesses for the infinitesimals is different. Also the infinitesimals here 
have an additional variable( dy/dx ).

The 2nd order part can be built upon the previous structure. There is a 
function 'infinitesimals' which generates infinitesimals by calling all 
heuristics functions. This function can be changed to recognize the order 
of the ODE and call the heuristic functions of that ODE. Some heuristics 
are common for both ODE's, but still would require some changes due to the 
presence of an additional variable in 2nd order equations. Other new 
guesses would be written from scratch. A brief summary of the guesses for 
2nd order is provided here 
<http://www.maplesoft.com/support/help/Maple/view.aspx?path=DEtools/symgen>.

After generating infinitesimals for 2nd order there are multiple ways to 
approach the remaining part. Solving through canonical coordinates as done 
in 1st order eqautions is one of the way. Since it is already implemented 
for 1st order, I plan to go forward with this approach. However canonical 
variables may sometimes cause computation failures due to inverse 
transformations and hence I also want to implement the method of first 
integrals.

A lot of depth can be added here. More intelligent guesses for 1st and 2nd 
order equations can also be implemented. Lie groups is a vast field and 
could itself be a proper module. Your views on the complexity would really 
help as there is a lot of material to read.

It would be a great boost for ODE solving module if 2nd order differential 
equations can also be solved through lie groups. Using lie groups is a more 
generic method and does not require any special classification of ODE. This 
can form a base for higher-degree ODE's. 

I do have a vision for implementing this is depth but would like to know 
your initial thoughts on this before I go ahead.

Thanks.

-- 
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/d618eb30-1fd2-401e-9956-c2a629e22510%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to