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
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.
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