GSoC 2016 Application Shravan Patel: ODE - wrat/sympy GitHub Wiki
#Implementing new methods to solve ODE
##Personal Details
Name: Shravan Patel
University: Indian Institute of Technology, Mandi
Email: [email protected]
Github: shravanpatel5
##Background and Programming Skills
I am Shravan Patel. I am currently pursuing second year B.Tech in Computer Science and Engineering at Indian Institute of Technology, Mandi. My field of interest include Competitive Programming, Mathematics and Electronics. I am new in Open Source Software Development. I heard my senior telling "Competitive Programming is not everything, you should contribute to Open Source Softwares". That increased my interest in Open Source Software Development.
I code in C, C++ and Python. I have taken course of Ordinary Differential Equations in my 1st semester and worked good in it. I use python since my first semester. I have made two websites as a project using PHP, HTML, CSS and JavaScript. I am intermediate in Python. Code in python is 5 times shorter than code in any other language. That's very cool. In built Dictionary, no memory management, too many standard libraries, For..else syntax and many other things that I liked most.
##Project Idea
###Abstract The implementation of the current ODE solver in sympy was started by Aaron Meurer as his GSoC Project in 2009. Currently, SymPy's ODE solver has many methods to solve differential equations. But there are many methods that are not implemented. My project proposal would be dealing with the implementation of these three features.
-
Implementation of a function for separation ansatz
At present, ODE module have a method to solve differential equations which are separable. I would like to make a simple and very fast function which will find out whether an ordinary differential equation is separable or not. -
Solving Differential Equations in Terms of Bessel Functions
Ode module have a method to solve second order differential equations which are in Liouville form. Bessel equation and Liouville form are similar. This project is aimed to develop a method that can solve second order differential equations in terms of Bessel functions. -
Solving second order ODE using Lie Groups and symmetric method
In GSoC 2013, Manoj Kumar implemented the method to solve first order differential equations using Lie groups. At the end of this project Ode module would be able to solve second order differential equations using Lie group.
###Inspiration In beginning, I was finding a organization which require C/C++/Python and Mathematics. I got few such organizations. Because of too many good and interesting ideas related to mathematics, I chose SymPy. As I had taken a course on ODE, I got interest in this project proposal idea.
###Theory
Implementation of a function for separation ansatz
- Suppose
dy/dx = f(x,y)
. Iff(x,y)
is separable asf(x,y) = φ(x)*ψ(y)
we can solve it using ode_saperable(). There is a very fast method to check whetherf(x,y)
is separable or not.
(1) Choose any(x0, y0)
such thatf(x0, y0) != 0
.
(2) Construct the functionsφ(x) = f(x,y0)/f(x0,y0)
andψ(y) = f(x0, y)
.
(3) The equation is separable if and only iff(x, y) = φ(x)*ψ(y)
.
Solving Differential Equations in Terms of Bessel Functions
- Ode module have a method to solve second order differential equations which are in Liouville form. Bessel equation and Liouville form are similar. This project is aimed to develop a method that can solve second order differential equations in terms of Bessel functions.
Solving second order ODE using Lie Groups and symmetric method
- In GSoC 2013, Manoj Kumar implemented the method to solve first order differential equations using Lie groups. At the end of this project Ode module would be able to solve second order differential equations using Lie group.
###Implementation
Implementation of a function for separation ansatz
- First algorithm is to find
x0
andy0
in constant order for whichf(x0,y0)
is not zero. After thatφ(x)
andψ(y)
can be easily calculated and then by comparingf(x,y)
toφ(x)*ψ(y)
function will return false orφ(x)
andψ(y)
with true.
Solving Differential Equations in Terms of Bessel Functions
- Ode module have a method to solve second order differential equations which are in Liouville form. Bessel equation and Liouville form are similar. This project is aimed to develop a method that can solve second order differential equations in terms of Bessel functions.
Solving second order ODE using Lie Groups and symmetric method
- In GSoC 2013, Manoj Kumar implemented the method to solve first order differential equations using Lie groups. At the end of this project Ode module would be able to solve second order differential equations using Lie group.
##Timeline
Befor April 22
- To familiarize myself completely with SymPy's ODE module's functionality and architecture
- Deep study of the "Solving Differential Equations in Terms of Bessel Functions"
- Deep study of the Lie Group method for solving second order ODE
Community bonding period(April 22 - May 22)
- The main focus in this period would be creating the efficient algorithms.
- During this period I will remain in constant touch with my mentor. I will remain active on IRC and Mailling lists to discuss and finalize on the modifications (if any) that needs to be on existing schemas and design of new schemas. Thus with the help of my mentor I will become absolutely clear about my future goals.
- If I would get extra time, I would start coding in this phase.
Week 1 - Week 5 (May 23 - June 28)
- Coding
Midterm Evaluation
- Fix bugs if any
Week 6 - Week 11 (May 23 - June 28)
- Coding
Week 12 (August 8 - August 16)
- Write documentation and fix bugs that may arise
Week 13 (August 16 - August 24)
- Final Evaluation
Notes :-
- I have final exams during week 2 and week3. So I would be able to devote 15-25 hours per week in that period. After week 3 I would be able to devote 40-50 hours per week. I have no other project or internship for the summer. My next semester will start around 10 August. So there won't be any clash with GSoc.
##References