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.

Reply via email to