Hi Kshitij, Good to hear that you want to work on solvers. Here are my comments on your queries.
1. Search Based Solvers: This idea is currently vague, we need to figure out how exactly we can develop this. It would be ambitious to develop this idea and It should be accompanied with lot of research. Currently an abstract is written in the docs: https://github.com/sympy/sympy/blob/master/doc/src/modules/solvers/solveset.rst 2. Simplifying solutions returned from equations involving trigonometric expressions: With the Introduction of solveset an important problem of representing infinite solution has been solved to some extent, but still there are some issues with ImageSet Union, due to which a lot of simpler results are not displayed properly. This needs to be figured out to get better ImageSet Union. In [10]: solveset(sin(x), x) Out[10]: {2⋅n⋅π | n ∊ ℤ} ∪ {2⋅n⋅π + π | n ∊ ℤ} In [11]: solveset(sin(3*x), x) Out[11]: ⎧ 2⋅π ⎫ ⎧ 2⋅π {2⋅n⋅π | n ∊ ℤ} ∪ {2⋅n⋅π + π | n ∊ ℤ} ∪ ⎨2⋅n⋅π - ─── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─── | ⎩ 3 ⎭ ⎩ 3 ⎫ ⎧ π ⎫ ⎧ π ⎫ n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π - ─ | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─ | n ∊ ℤ⎬ ⎭ ⎩ 3 ⎭ ⎩ 3 ⎭ Here is a previous approach on fixing this: https://github.com/sympy/sympy/pull/7673 3. Implementing more Equation solvers A lot of thing which needs to be done is already done in old solve, like the solving of multivariate equation solver, you need to figure out how that works and how you can port those in solveset following the principles of solveset. https://github.com/sympy/sympy/issues/10008 I found this paper [5] > <http://www.google.com/url?q=http%3A%2F%2Fwww.hpcc.unn.ru%2Fmskurs%2FENG%2FDOC%2Fpp09.pdf&sa=D&sntz=1&usg=AFQjCNHolKq7cLj2VMcZnHIxFTklyo1bPA> > > which talks about implementing a parallel Gauss method for solving this > issue. Is it relevant ? This paper seems like implementing linear system solver, which is already implemented as linsolve. 4. Solving f(x + a) - f(x) = 0 equations: [7] <https://github.com/sympy/sympy/issues/10426> This needs to figured out. > 5. Building the set infrastructure: > Implementing functions to handle multidimensional ImageSet > Can we be more elaborate on what other features are we expecting ? See this for motivation: https://github.com/sympy/sympy/issues/10008 Best Regards, Amit Kumar On Tuesday, February 23, 2016 at 7:56:31 PM UTC+5:30, Kshitij Saraogi wrote: > > Hello, > > > I am Kshitij Saraogi and I will be a GSoC applicant this year under SymPy. > > > I wanted to discuss about the Solvers project.[1] > <https://github.com/sympy/sympy/wiki/gsoc-2016-ideas#solvers> > > After going through the discussions mentioned on the Ideas page, I would > like to get inputs on a few ideas for this project: > > > 1. Search based Solvers [2] > <https://github.com/sympy/sympy/blob/master/doc/src/modules/solvers/solveset.rst#search-based-solver-and-step-by-step-solution> > : > > I find this idea quite intriguing. I understand only an abstract > view of the idea was presented there. > > I think we should try to implement this as it would make the API > cleaner and robust. > > Since, not much has been written about this, I would like to know > more about it. > > - What is the methodology we are thinking to use for ranking solutions > (if any)? > - What would be the parameters on which the cost function of different > sets depend ? > So, I would appreciate guidance in this direction. > > > 2. Simplifying solutions returned from equations involving > trigonometric expressions: > > The solveset module needs improvement with regards to the > trignometric equation solver. > > An equation,as simple as, sin(x)=0 gives an output which should be > simplified. > > This should be a big concern. > > What would be some good starting points to get an overview of the > issue and possibly a few ideas to resolve this ? > > > 3. Implementing more equation solvers: [3] > <https://github.com/sympy/sympy/issues/10006> > > - > > System of multivariate linear equations. > - > > Nonlinear multivariate equation solver. > - > > Equations solvable by LamberW function (Transcendental equation solver) > - > > Nested trignometric expressions. > > As Amit pointed out here[4] > <https://github.com/sympy/sympy/issues/10006#issuecomment-149339351>, > that we need (ii) and (iii) to make solveset at par with solve. > > I found this paper [5] > <http://www.hpcc.unn.ru/mskurs/ENG/DOC/pp09.pdf> which talks about > implementing a parallel Gauss method for solving this issue. Is it relevant > ? > > While fixing an issue [6] > <https://github.com/sympy/sympy/pull/10289>, I came to know that we need > a more reliable multivariate nonlinear equation solver. > > I would like to know more about these solvers with respect to > their immediate need and the possible methods of their implementation. > > > > 4. Solving f(x + a) - f(x) = 0 equations: [7] > <https://github.com/sympy/sympy/issues/10426> > > While going through some issues, I found that the current solvers > can’t handle these type of equations. > > > > 5. Building the set infrastructure: > > - > > Implementing functions to handle multidimensional ImageSet > > Can we be more elaborate on what other features are we expecting ? > > I would really appreciate if someone can point out the issues I may have > missed. > > Also, any relevant resources or links for further readings would help too. > > > Thanks, > > Kshitij Saraogi > -- 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 https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/98d1cacd-0ff4-45ef-a0b7-d4b1b2a47c28%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
