This is a good writeup. It would be great if you could add this or something similar to the GSoC ideas page.
Aaron Meurer On Wed, Jan 7, 2015 at 1:48 AM, Harsh Gupta <[email protected]> wrote: > > Thanks for the response :-). I have a few questions as follows: > > what are the other solvers that need to implemented in this year GSoC > and some references to the algorithms that will be used in implementing > those solvers. > > when will this ideas page be updated. > > Regards > > Luv Agarwal > > > In GSoC last year there was a project on improvising solvers. I wanted to > > know how much of that is implemented (the ideas page of this year is not > > updated yet) as I am interested in working on solvers. > > Great to hear you are interesting in working on solvers. Briefly here's > what have been done in the summer: > > Instead of making changes in the current `solve` function we rewrote > solvers in a new submodule named solveset. Though it borrows ideas and > tests from the `solve` submodule. > > * `solveset` has a cleaner input and output interface: We now return a set > object. For input only takes the equation and the variables for which the > equations has to be solved. > > * `solveset` can return infinitely many solutions. For example solving for > `sin(x) = 0` returns {2⋅n⋅π | n ∊ ℤ} ∪ {2⋅n⋅π + π | n ∊ ℤ} Whereas `solve` > only returns [0, π] > > * There is a clear code level and interface level separation between > solvers for equations in complex domain and equations in real domain. For > example solving `exp(x) = 1` when x is complex returns the set of all > solutions that is {2⋅n⋅ⅈ⋅π | n ∊ ℤ} . Whereas if x is a real symbol then > only {0} is returned. > > * There are cases like finding the maxima and minima of function using > critical points where it is important to know if it has returned all the > solutions. `solve` does not guarantee this. `solveset` fixes that issue. > > > There had been a lot of discussion during and before the project and you > should know why we did what we did. Here are some links: > > * Discussion on the mailing list: > https://groups.google.com/forum/#!searchin/sympy/solvers/sympy/Oyz8SkR2fRk/RMpooqwu3oMJ > * Action Plan on solvers: https://github.com/sympy/sympy/pull/2948 > * My Proposal for GSoC 2014: > https://github.com/sympy/sympy/wiki/GSoC-2014-Application-Harsh-Gupta:-Solvers > * My blog for GSoC: http://hargup.github.io/ > * solveset pull request as mentioned by Sergey: > https://github.com/sympy/sympy/pull/7523 > > I used to have biweekly gitter meeting with Matthew and Sergey. You can > try to dig the gitter archives to have a look at them. Here is the link to > the logs of the first meeting > https://gitter.im/sympy/sympy/archives/2014/05/07 > > Here's a brief list of things that needs to be done: > * Implement multivariate solvers for solveset > * Implement more equation solvers for univariate algebraic equations. For > example equations solvable by LambertW function > * Build the set infrastructure: This includes implementing complex sets > and functions to handle multidimentional ImageSet etc., This part must go > hand in hand with the improvements in the solvers as set module can be a > universe in itself. Also there can be fundamental limits on the things you > can do. > > This list might appear small but there is a lot of work that needs to be > done which can easily fill up the summer or probably beyond it. This can be > fun project but as it is mentioned in the ideas of 2014 it requires a good > deal of thought during the application phase. > > Richard, I have gone through some of your paper written on solvers in CAS > and also used in them solveset. Thanks for them. It would be great if you > can also provide us with some curated list of resources on solvers. > > Aaron can we support more than one student to work on solvers? As far as I > remember there were one or two other students who were also interested in > solvers. > > -- > 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/CADN8iuqZhB2Qn7f0WGMP_1JRvfHxnFFsnjJBcvg7z%2Bb4DaMbKw%40mail.gmail.com > <https://groups.google.com/d/msgid/sympy/CADN8iuqZhB2Qn7f0WGMP_1JRvfHxnFFsnjJBcvg7z%2Bb4DaMbKw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- 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/CAKgW%3D6Lt5zE_J5p8Y8JNMa62mM0%2BaCqganUFHbF63CLWk1_jQg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
