Hello again.

Sorry to bring this post up again, but I thought it would be good to keep 
all my ideas on a single thread.

I've been reading about lie groups and their application in solving 
differential equations and I believe I've got my concepts right about 
solving a linear first order differential equation. Maple, (according to 
the papers cited in the SoC ideas pages), has two separate papers dedicated 
to solving differential equations of the first and second order using lie 
groups. I would like to like to code a clone for solving first order 
differential equations using lie groups in sympy for my SoC proposal. 

Theory:
There are many differential equations that cannot be solved using the 
present dsolve in ode.py. Suppose there is a differential equation of the 
form
(dr / ds) = f(r), since the slope is independent of s, moving in the s 
direction would merge one solution into another. The principal aim of using 
lie groups is to reduce any given differential equation to the above 
mentioned form.

The coordinates r and s are called canonical coordinates because any lie 
group transformation which leaves the differential equation invariant would 
transform it into the form (r, s + alpha) where r remains invariant.If we 
are able to find such coordinates, then the equation becomes separable.

The problem is finding these canonical co-ordinates. This can be broken 
into four steps(This is for first order differential equations)

1. Find η and ξ , the infinitesimals using this partial diffential 
equation, which
are basically the differentials of the transformed co-ordinates with 
respect to
the transformation parameter.

ηx - ξy h2 + (ηy - ξx )h - (ξhx + ηhy ) = 0

This should be the toughest part of the project. As you can see solving a 
linear first order ODE, leads to solving a much more complicated PDE. 
However in this PDE, some assumptions could be made for the infinitesimals. 

Maple has 6 separate algorithms just for finding the infinitesimals as 
described in the paper. Once this is done.

2. rx ξ + ry η = 0,
   sx ξ + sy η = 1,

Solving these two equations would give, r and s , this can be done by. dx / 
ξ = dy / η = r(x,y) and dx / ξ = ds

3. After this substituting r and s  in 
ds / dr = sx + h(x,y)sy / rx + h(x, y)ry and simplifying in terms of r and 
s would give a separable form.

4. And after solving the differential equation in terms of r and s, 
substituting back r and s in terms of x and y.

I haven't focussed on the implementation part yet, but I think it should be 
structured similar to dsolve, or should it be implemented in dsolve.

I've focussed on only first order differential equations here, even Maple 
also has support only upto the second order.I feel this project would be 
challenging for me and also a addition to the ODE solver of sympy.

@Aaron, Stefan, and Smichr Please do give your feedback.

-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to