How to get a start for the upcoming gsoc 2018

93 views
Skip to first unread message

madha...@gmail.com

unread,
Jan 15, 2018, 7:59:56 PM1/15/18
to sympy
Hi,

I’m a computer science student currently a freshmen studying in Michigan State University. I’m really interested in working with you for gsoc this year. 

I have some experience in HTML,PYTHON. I would like to work on Series expansions (to improve series expansions and to improve limits using sympy.
But I have no idea how to get started. I would really appreciate any advice.

Thank you!

With regards,
Don  

Leonid Kovalev

unread,
Jan 15, 2018, 9:42:13 PM1/15/18
to sympy
If you are interested in contributing to series, study the logic of the ring series module  which is documented here.   

It has a bunch of helper functions like rs_exp or rs_cos which expand the exponential, or the cosine, etc of the given expression. Here is an example:

from sympy import *
from sympy.polys.ring_series import *
R
, x = ring('x', QQ)
print(rs_cosh(6*x, x, 7))

Great, we got a few terms of the power series of cosh(6*x), namely 324/5*x**6 + 54*x**4 + 18*x**2 + 1
(You may want to read the code of that function to see how it did that: it used the expansion of exp and inverted it.)

But the following, which should do the same, throws an exception:

t = symbols('t')
print(rs_series(cosh(6*t), t, 7))

Why? Apparently, the dictionary here is lacking an entry for cosh that would point evaluation to rs_cosh. Try adding it and see if the above works correctly. 
Then consider linking other hyperbolic trigonometric functions for which the helpers already exist. 

Later, after familiarizing yourself with the process of obtaining new series from old (by arithmetic operations, integration, differentiation, etc - all are already implemented), try adding a new rs_ helper; for example, for sine integral function Si. It's just the sine series, divided by argument and then integrated.

Ask in Gitter chat if you get stuck.  

Cédric Travelletti

unread,
Jan 25, 2018, 2:51:09 PM1/25/18
to sympy
Hi Leonid

I started working on rs_series and have encountered some difficulties.

I have to use rs_series_inversion in order to perform some division. The problem is that series inversion doesn't always work.
For example:

R, x, y = ('x, y', QQ)
rs_series_inversion
(x + x*y, 4)

This throws an NotImplementedError.

Would you have any advice on this? I was thinking about catching the exception and just using 1/p in that case.

Bests

Cédric







Reply all
Reply to author
Forward
0 new messages