Hi, I am AMiT Kumar, I would be GSoC Applicant to SymPy this year. I have been following the SymPy Community for quite sometime now and have also got around 11-12 patches Merged in the Code base. So, now, I have got a decent idea of `How things works`.
I would like to work on Solvers as Mentioned on the Ideas Page. Last year Harsh Gupta did a very good job by Rewriting the Univariate solvers (solveset.py), I have gone through his work. After having conversation with him and digging into solveset, I got to know there is still a lot of work which needs to be done. I could see a couple of entry points on the Ideas page: https://github.com/sympy/sympy/issues/8725 (I have Merged a PR for this) https://github.com/sympy/sympy/issues/8711 (Replace all internal solve() calls with solveset() ): TODO Things, I would like to implement in solveset includes: Multivariate Equation solving: I think for solving multivariate equations, the order of variables should be given as input, so that we don't need to have a dict as output and we can return Set, as if we automatically detect variables, we need to output the dict of results. - Multivariate functions with non point solution: (solvemv) - In [0] solveset((x - 1)*(y - 2), (x, y)) Out[1] {{1, arbitrary}, {arbitrary, 2}} or we may return: Out[1] {{1, (-oo, oo)}, {(-oo, oo), 2}} - Multivariate functions with point solutions: (solvemv) - In [0] solveset(x**2 + y**2, (x, y)) Out[1] {0, 0} Solve System of Equation: (solvesys) (For system of Equation, we can have this): - In [0] solveset([x + y == 1, x - y == 0], (x,y)) Out[1] {{1/2, 1/2}} - For inequality solver (or for solvers in general) we also need to extend singularities module (though useful in general), so as to prevent getting wrong results, caused due to incorrect simplification of expression, as we saw in this issue: https://github.com/sympy/sympy/issues/8715 , Example: x + 1/x > -2 + 1/x this inequality is written as expr = expr. lhs - expr.rhs , which cancels 1/x and gives wrong result, by including singular point in the solution. - inequality solver in solveset currently uses inequalities.py (dependent on solve) (some discussion here: https://groups.google.com/forum/#!topic/sympy/Yp5NqrXmp2U). It is related to the next point below. - All internal solve() calls needs to be replaced with solveset() , this is very important for bringing out the solveset from sandbox to eventually replace solve(). (we need to consider the output API (return type) also while replacing). - We also need to extend the set - boolean (relational) conversion methods to handle multivariate variables. - Complex set Infrastructure is also not there (though I see a WIP PR for that), and yes we also need to see what other set capabilities we need to implement to support various other kinds of solutions. And also other solvers as mentioned on ideas page like 'Equations solvable by LambertW function' also needs to work. I would love to get feedback from the community before presenting my proposal. Cheers! AMiT Kumar 3rd Year Undergrad Delhi Technological University www.iamit.in -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/c786148f-3ea3-411f-b24c-93dc0174b381%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
