Hello

25 views
Skip to first unread message

Kristen Mills

unread,
Mar 24, 2012, 4:07:47 AM3/24/12
to sy...@googlegroups.com
Hello

I'm a second year software engineering student at Rochester Institute of Technology.  I would really be interested in coding for sympy during Google Summer of code.

I think something I'd really be interested in doing would be something along the lines of step by step expression manipulation.
Another idea I had was adding support for more advanced calculus.  

Nice to meet you all. 

-Kristen 


Sergiu Ivanov

unread,
Mar 24, 2012, 4:48:03 AM3/24/12
to sy...@googlegroups.com
Hello,


On Sat, Mar 24, 2012 at 10:07 AM, Kristen Mills
<kri...@kristen-mills.com> wrote:
>
> I think something I'd really be interested in doing would be something along
> the lines of step by step expression manipulation.
> Another idea I had was adding support for more advanced calculus.

There is a discussion going on about step-by-step expression
manipulation: [0].

While you will be discussing your idea of implementation, I suggest
you keep in mind that you have to fulfil your patch requirement by
submitting at least one patch to SymPy. To do that, I suggest you set
up your environment according to [1]. Then, take a look at the list
of issues [2], pick one (or more :-) ) which you like best and submit
a patch. Some issues are explicitly marked as easy to fix: [3]

Sergiu

[0] https://groups.google.com/d/topic/sympy/Rxmpl5TRyaw/discussion
[1] https://github.com/sympy/sympy/wiki/Development-workflow
[2] http://code.google.com/p/sympy/issues/list
[3] http://code.google.com/p/sympy/issues/list?can=2&q=label%3AEasyToFix+&colspec=ID+Type+Status+Priority+Milestone+Reporter+Summary+Stars&cells=tiles

Saptarshi Mandal

unread,
Mar 24, 2012, 12:10:42 PM3/24/12
to sympy
> Another idea I had was adding support for more advanced calculus.
>

Sympy already has support for much that is covered in 2nd year
Calculus (ODEs, transform calculus and a reasonably good integrator)

Vector calculus is still required as is a more complete PDE solver.

What do you plan on implementing?

Cheers!
Saptarshi

Aaron Meurer

unread,
Mar 24, 2012, 5:27:37 PM3/24/12
to sy...@googlegroups.com
On Sat, Mar 24, 2012 at 10:10 AM, Saptarshi Mandal
<sapta....@gmail.com> wrote:
>> Another idea I had was adding support for more advanced calculus.
>>
>
> Sympy already has support for much that is covered in 2nd year
> Calculus (ODEs, transform calculus and a reasonably good integrator)
>
> Vector calculus is still required as is a more complete PDE solver.

You could also make a project out of further improving the ODE solver.
It can already solve most types of ODEs taught in a first level
course, but there are tons of ODE solving methods that are not yet
implemented.

And by the way, "more complete PDE solver" is putting it kindly. We
currently have *no* PDE solver, just a couple of helper methods for
separation of variables.

Aaron Meurer

>
> What do you plan on implementing?
>
> Cheers!
> Saptarshi
>

> --
> You received this message because you are subscribed to the Google Groups "sympy" group.
> To post to this group, send email to sy...@googlegroups.com.
> To unsubscribe from this group, send email to sympy+un...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
>

Kristen Mills

unread,
Mar 24, 2012, 5:41:14 PM3/24/12
to sy...@googlegroups.com


On Saturday, March 24, 2012 5:27:37 PM UTC-4, Aaron Meurer wrote:
On Sat, Mar 24, 2012 at 10:10 AM, Saptarshi Mandal
<sapta....@gmail.com> wrote:
>> Another idea I had was adding support for more advanced calculus.
>>
>
> Sympy already has support for much that is covered in 2nd year
> Calculus (ODEs, transform calculus and a reasonably good integrator)
>
> Vector calculus is still required as is a more complete PDE solver.

You could also make a project out of further improving the ODE solver.
 It can already solve most types of ODEs taught in a first level
course, but there are tons of ODE solving methods that are not yet

implemented..

Initial I was thinking vector calculus mostly. I was hoping to definitely add some of the basic operators (curl, divergence, laplacian, gradient). I would also to like to try to make some progress on integration of vectors. But now that you have mentioned the ODE solver, I also think improving the that would be an interesting project to undertake. 

And by the way, "more complete PDE solver" is putting it kindly.  We

currently have *no* PDE solver, just a couple of helper methods for
separation of variables.

Aaron Meurer

>
> What do you plan on implementing?
>
> Cheers!
> Saptarshi
>
> --
> You received this message because you are subscribed to the Google Groups "sympy" group.
> To post to this group, send email to sy...@googlegroups.com.

> To unsubscribe from this group, send email to sympy+unsubscribe@​googlegroups.com.

> To unsubscribe from this group, send email to sympy+unsubscribe@​googlegroups.com.

Aaron Meurer

unread,
Mar 24, 2012, 5:47:29 PM3/24/12
to sy...@googlegroups.com
On Sat, Mar 24, 2012 at 3:41 PM, Kristen Mills
<kri...@kristen-mills.com> wrote:
>
>
> On Saturday, March 24, 2012 5:27:37 PM UTC-4, Aaron Meurer wrote:
>>
>> On Sat, Mar 24, 2012 at 10:10 AM, Saptarshi Mandal
>> <sapta....@gmail.com> wrote:
>> >> Another idea I had was adding support for more advanced calculus.
>> >>
>> >
>> > Sympy already has support for much that is covered in 2nd year
>> > Calculus (ODEs, transform calculus and a reasonably good integrator)
>> >
>> > Vector calculus is still required as is a more complete PDE solver.
>>
>> You could also make a project out of further improving the ODE solver.
>>  It can already solve most types of ODEs taught in a first level
>> course, but there are tons of ODE solving methods that are not yet
>> implemented..
>
> Initial I was thinking vector calculus mostly. I was hoping to definitely
> add some of the basic operators (curl, divergence, laplacian, gradient). I
> would also to like to try to make some progress on integration of
> vectors. But now that you have mentioned the ODE solver, I also think
> improving the that would be an interesting project to undertake.

Take a look at sympy/solvers/ode.py to see what's already implemented.
Search the issue tracker for some ideas on how it can be improved.
Also, we now have a ton of special functions in SymPy that are defined
by ODEs, and it would be nice to implement solvers for them. There
was a paper mentioned on some other thread on this list about this
too. You can also look at more general algorithms for solving ODEs
like ones involving Lie groups (see the ideas page).

Aaron Meurer

>
>> And by the way, "more complete PDE solver" is putting it kindly.  We
>>
>> currently have *no* PDE solver, just a couple of helper methods for
>> separation of variables.
>>
>> Aaron Meurer
>>
>> >
>> > What do you plan on implementing?
>> >
>> > Cheers!
>> > Saptarshi
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "sympy" group.
>> > To post to this group, send email to sy...@googlegroups.com.
>> > To unsubscribe from this group, send email to

>> > sympy+un...@googlegroups.com.

>> > sympy+un...@googlegroups.com.


>> > For more options, visit this group at
>> > http://groups.google.com/group/sympy?hl=en.
>> >
>

> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.

> To view this discussion on the web visit
> https://groups.google.com/d/msg/sympy/-/hy7YqbCkUQkJ.


>
> To post to this group, send email to sy...@googlegroups.com.
> To unsubscribe from this group, send email to

> sympy+un...@googlegroups.com.

David Joyner

unread,
Mar 24, 2012, 5:48:25 PM3/24/12
to sy...@googlegroups.com
On Sat, Mar 24, 2012 at 5:41 PM, Kristen Mills
<kri...@kristen-mills.com> wrote:
>
>
> On Saturday, March 24, 2012 5:27:37 PM UTC-4, Aaron Meurer wrote:
>>
>> On Sat, Mar 24, 2012 at 10:10 AM, Saptarshi Mandal
>> <sapta....@gmail.com> wrote:
>> >> Another idea I had was adding support for more advanced calculus.
>> >>
>> >
>> > Sympy already has support for much that is covered in 2nd year
>> > Calculus (ODEs, transform calculus and a reasonably good integrator)
>> >
>> > Vector calculus is still required as is a more complete PDE solver.
>>
>> You could also make a project out of further improving the ODE solver.
>>  It can already solve most types of ODEs taught in a first level
>> course, but there are tons of ODE solving methods that are not yet
>> implemented..
>
> Initial I was thinking vector calculus mostly. I was hoping to definitely
> add some of the basic operators (curl, divergence, laplacian, gradient). I
> would also to like to try to make some progress on integration of
> vectors. But now that you have mentioned the ODE solver, I also think
> improving the that would be an interesting project to undertake.


I don't think sympy has an ODE systems solver. That would be very useful for my
DE students, even if for only the 2x2 and 3x3 case.

>
>> And by the way, "more complete PDE solver" is putting it kindly.  We
>>
>> currently have *no* PDE solver, just a couple of helper methods for
>> separation of variables.
>>
>> Aaron Meurer
>>
>> >
>> > What do you plan on implementing?
>> >
>> > Cheers!
>> > Saptarshi
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "sympy" group.
>> > To post to this group, send email to sy...@googlegroups.com.
>> > To unsubscribe from this group, send email to

>> > sympy+un...@googlegroups.com.

>> > sympy+un...@googlegroups.com.


>> > For more options, visit this group at
>> > http://groups.google.com/group/sympy?hl=en.
>> >
>

> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.

> To view this discussion on the web visit
> https://groups.google.com/d/msg/sympy/-/hy7YqbCkUQkJ.
>

> To post to this group, send email to sy...@googlegroups.com.
> To unsubscribe from this group, send email to

> sympy+un...@googlegroups.com.

Aaron Meurer

unread,
Mar 24, 2012, 5:55:41 PM3/24/12
to sy...@googlegroups.com
On Sat, Mar 24, 2012 at 3:48 PM, David Joyner <wdjo...@gmail.com> wrote:
> On Sat, Mar 24, 2012 at 5:41 PM, Kristen Mills
> <kri...@kristen-mills.com> wrote:
>>
>>
>> On Saturday, March 24, 2012 5:27:37 PM UTC-4, Aaron Meurer wrote:
>>>
>>> On Sat, Mar 24, 2012 at 10:10 AM, Saptarshi Mandal
>>> <sapta....@gmail.com> wrote:
>>> >> Another idea I had was adding support for more advanced calculus.
>>> >>
>>> >
>>> > Sympy already has support for much that is covered in 2nd year
>>> > Calculus (ODEs, transform calculus and a reasonably good integrator)
>>> >
>>> > Vector calculus is still required as is a more complete PDE solver.
>>>
>>> You could also make a project out of further improving the ODE solver.
>>>  It can already solve most types of ODEs taught in a first level
>>> course, but there are tons of ODE solving methods that are not yet
>>> implemented..
>>
>> Initial I was thinking vector calculus mostly. I was hoping to definitely
>> add some of the basic operators (curl, divergence, laplacian, gradient). I
>> would also to like to try to make some progress on integration of
>> vectors. But now that you have mentioned the ODE solver, I also think
>> improving the that would be an interesting project to undertake.
>
>
> I don't think sympy has an ODE systems solver. That would be very useful for my
> DE students, even if for only the 2x2 and 3x3 case.

Oh yes, I forgot about this. I don't see any reason why it shouldn't
be able to handle the nxn case of a linear system. You can also
implement methods for solving non-linear systems that decouple.

Relating to this, it would be useful to add some methods that don't
necessarily solve ODEs, but manipulate them. For example, you could
have a method that takes a higher order ODE and converts it into a
system of 1st order ODEs. Take a look at Maple's DETools package for
some more ideas.

And if you search the issues, you'll see that we still need support
for initial/boundary conditions, and there is also an issue for
improving the situation of arbitrary constant simplification.

Aaron Meurer

Tim Lahey

unread,
Mar 24, 2012, 6:02:54 PM3/24/12
to sy...@googlegroups.com
On Sat, Mar 24, 2012 at 5:55 PM, Aaron Meurer <asme...@gmail.com> wrote:
>
> Oh yes, I forgot about this.  I don't see any reason why it shouldn't
> be able to handle the nxn case of a linear system.  You can also
> implement methods for solving non-linear systems that decouple.
>
> Relating to this, it would be useful to add some methods that don't
> necessarily solve ODEs, but manipulate them.  For example, you could
> have a method that takes a higher order ODE and converts it into a
> system of 1st order ODEs.  Take a look at Maple's DETools package for
> some more ideas.

Maple also has a nice PDETools package. There's also a paper that
discusses the implementation of their PDE solver.

Cheers,

Tim.

--
Tim Lahey
PhD Candidate, Systems Design Engineering
University of Waterloo
http://about.me/tjlahey

Saptarshi Mandal

unread,
Mar 24, 2012, 9:57:06 PM3/24/12
to sympy
>
> > I don't think sympy has an ODE systems solver. That would be very useful for my
> > DE students, even if for only the 2x2 and 3x3 case.
>
> Oh yes, I forgot about this.  I don't see any reason why it shouldn't
> be able to handle the nxn case of a linear system.  You can also
> implement methods for solving non-linear systems that decouple.
>


Kristen: I have a pull request on hold regarding this. I can hand
over that work to you.

> Relating to this, it would be useful to add some methods that don't
> necessarily solve ODEs, but manipulate them.  For example, you could
> have a method that takes a higher order ODE and converts it into a
> system of 1st order ODEs.  Take a look at Maple's DETools package for
> some more ideas.
>

A *very* good idea. Is there some scope for code deduplication in this
case as well? I mean, do you perform some simplification in each of
the
techniques you have implemented that can be factored out into a common
function?

Aaron Meurer

unread,
Mar 24, 2012, 10:43:03 PM3/24/12
to sy...@googlegroups.com
On Sat, Mar 24, 2012 at 7:57 PM, Saptarshi Mandal
<sapta....@gmail.com> wrote:
>>
>> > I don't think sympy has an ODE systems solver. That would be very useful for my
>> > DE students, even if for only the 2x2 and 3x3 case.
>>
>> Oh yes, I forgot about this.  I don't see any reason why it shouldn't
>> be able to handle the nxn case of a linear system.  You can also
>> implement methods for solving non-linear systems that decouple.
>>
>
>
> Kristen: I have a pull request on hold regarding this. I can hand
> over that work to you.
>
>> Relating to this, it would be useful to add some methods that don't
>> necessarily solve ODEs, but manipulate them.  For example, you could
>> have a method that takes a higher order ODE and converts it into a
>> system of 1st order ODEs.  Take a look at Maple's DETools package for
>> some more ideas.
>>
>
> A *very* good idea. Is there some scope for code deduplication in this
> case as well? I mean, do you perform some simplification in each of
> the
> techniques you have implemented that can be factored out into a common
> function?

We should definitely do this. I've already come across one situation
where this should happen, which is that we should factor out the
function that computes the variation of parameters into a user-level
function, so that you can just pass it a linear ODE of order n and n
linearly independent solutions, and it will return the variation of
parameters. This way, even if the particular solver for the
homogeneous case is not yet implemented, you can still use the method
if you have the linearly independent set of solutions.

Needless to say, there's plenty of work that can be done in the ODE module :)

Aaron Meurer

Kristen Mills

unread,
Mar 24, 2012, 10:45:46 PM3/24/12
to sy...@googlegroups.com
Sounds good.  I will look it over later tonight/tomorrow. 

Kristen 

>
>> And by the way, "more complete PDE solver" is putting it kindly.  We
>>
>> currently have *no* PDE solver, just a couple of helper methods for
>> separation of variables.
>>
>> Aaron Meurer
>>
>> >
>> > What do you plan on implementing?
>> >
>> > Cheers!
>> > Saptarshi
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "sympy" group.
>> > To post to this group, send email to sy...@googlegroups.com.
>> > To unsubscribe from this group, send email to

>> > sympy+unsubscribe@​googlegroups.com.

>> > sympy+unsubscribe@​googlegroups.com.


>> > For more options, visit this group at
>> > http://groups.google.com/​group/sympy?hl=en.
>> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To view this discussion on the web visit
> https://groups.google.com/d/​msg/sympy/-/hy7YqbCkUQkJ.
>
> To post to this group, send email to sy...@googlegroups.com.
> To unsubscribe from this group, send email to

> sympy+unsubscribe@​googlegroups.com.

Message has been deleted

Kristen Mills

unread,
Mar 24, 2012, 11:15:54 PM3/24/12
to sy...@googlegroups.com


On Saturday, March 24, 2012 9:57:06 PM UTC-4, Saptarshi Mandal wrote:
>
> > I don't think sympy has an ODE systems solver. That would be very useful for my
> > DE students, even if for only the 2x2 and 3x3 case.
>
> Oh yes, I forgot about this.  I don't see any reason why it shouldn't
> be able to handle the nxn case of a linear system.  You can also
> implement methods for solving non-linear systems that decouple.
>


Kristen: I have a pull request on hold regarding this. I can hand
over that work to you.

I'd be interested. 

> Relating to this, it would be useful to add some methods that don't
> necessarily solve ODEs, but manipulate them.  For example, you could
> have a method that takes a higher order ODE and converts it into a
> system of 1st order ODEs.  Take a look at Maple's DETools package for
> some more ideas.
>

A *very* good idea. Is there some scope for code deduplication in this
case as well? I mean, do you perform some simplification in each of
the
techniques you have implemented that can be factored out into a common
function?

I agree that it is a good idea. The ability to manipulate a ODE that you don't have a solver for into a system of ODEs that you do would be insanely useful 

> And if you search the issues, you'll see that we still need support
> for initial/boundary conditions, and there is also an issue for
> improving the situation of arbitrary constant simplification.
>
> Aaron Meurer
>
>
>
>
>
>
>
>
>
> >>> And by the way, "more complete PDE solver" is putting it kindly.  We
>
> >>> currently have *no* PDE solver, just a couple of helper methods for
> >>> separation of variables.
>
> >>> Aaron Meurer
>
> >>> > What do you plan on implementing?
>
> >>> > Cheers!
> >>> > Saptarshi
>
> >>> > --
> >>> > You received this message because you are subscribed to the Google
> >>> > Groups "sympy" group.
> >>> > To post to this group, send email to sy...@googlegroups.com.
> >>> > To unsubscribe from this group, send email to
> >>> > sympy+unsubscribe@​googlegroups.com.
Reply all
Reply to author
Forward
0 new messages