Hello, I'll be applying for GSOC this year and while I was reading the ideas page I was really interested in working on one of the three of your projects mentioned below.
First one is improving the solve function: It mentions of finding some way to be sure that the function has found all the solutions.One of the way could be to use some basic mathematical knowledge before solving the equation. We could first factorize the equation and then solve for each factor individually. While solving for a factor we could have some function like hint function in ODE which could tell what kind of factor is it. Like whether it is a polynomial or a trigonometric function or a mixed kind. If it is polynomial we could apply some calculus. We could differentiate it and find its first derivative. If we find total number of roots of its derivative we could also find the roots of the function.Also we could analyze its derivative like whether it is monotonically increasing or decreasing. If it is trigonometric then we would try to come up with generic solutions as there are chances of getting infinite solution. We could also use intermediate value theorem to guess the expected solutions.We could find the value of the function at various intervals and store its value. If the sign of the value changes then we could be sure that atleast one solution exist between those two values. So in this way we could roughly guess the expected number of solutions.If the number of solutions given by solver is less than the value that we guessed then it would be easy to find the remaining solutions. But this method would not provide any surety. This could be of much importance where we only need to get the values in certain interval. For the problem of representing infinitely many solutions we could represent it in a generic form like some general term of a sequence. Second step by step expression manipulation : I think it would be great that before giving the step by step solution if we give the method of integration used like byparts integration or something else. This would enable the user to learn how to go about choosing the method of integration in various kinds of problem.We could also give elaborative description of each step like if we are doing integration by parts then which function did we chose as 'u' and which function as 'v'. We could even take a parameter as input whether user needs step wise description or directly the result. Third series expansion and limits : We could improve the limits by applying various techniques like L Hospital Rule, expanding some standard series like sinx ,cosx etc while calculating the limits as this may help sometimes. Again this doesn't guarantee 100% accuracy. For representing infinite series we could try to express it as an A.G.P. if not then try to compute its general term and generate the series from it. These are just some basic ideas of how to approach for a solution for the above projects, not very clear of how it would be implemented.I'm new to this organization but I'm really interested in contributing to any of the above projects.I would really look forward for some suggestions and some help to get started on one of the above projects. Regards, Umang Goel -- 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 sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.