Hello all, I am Kircheis I'm a graduate mathematician looking to get into programming. I have done a little bit of programming in Python and C, mostly solving project Euler problems, I came across sympy after getting tired of writing the same old functions over and over and now I would like to contribute. My familiarity with maths is fairly good, my background is mostly in combinatorics, graph theory and number theory - but until recently I had never programmed, I am hoping that contributing to open source will get my coding style to be something conventional and understandable.
I am quite interested in solving sums, I have implemented Zeilberger's algorithm (
http://mathworld.wolfram.com/ZeilbergersAlgorithm.html) for finding recurrences that a sum satisfies, for example if we take F(n, k) = binomial(n, k) and take f(n) the sum in k, it will helpfully tell us that f(n+1) = 2f(n). Less trivially it can tell us that for F(n, k) = binomial(n - k - 1, k) we have f(n+2) = f(n+1) + f(n), or that taking F(n, k) = (n-i)!(n-j)!(i-1)!(j-1)!/((n-1)!(k-1)!(n-i-j+k)!(i-k)!(j-k)!) we have f(n+1) = f(n), it also provides a function that serves as a proof of these recurrences. It is essentially just a rewrite of the algorithm described on page 106 of
https://www.math.upenn.edu/~wilf/AeqB.pdf.
If this is something of interest then I am happy to try and tidy it up a bit, but if not I am happy to be directed to look at something else.
Along the lines of tidying up, a question, I want to use linsolve, but the solution may have some free variables, I would like to set all the free variables to 0 except for one, which should become 1. At present I find the first free variable, and then set all variables to 0 except this one, is there are more pleasant way to do this?