On Monday, March 2, 2015 at 12:33:51 AM UTC+5:30, Aaron Meurer wrote:
>
> On Sat, Feb 28, 2015 at 10:53 PM, AMiT Kumar <dtu....@gmail.com 
> <javascript:>> wrote: 
> > One correction: 
> > * System of Multivariate Equations: 
> > We CAN implement this for comparatively lower order polynomial in new 
> > solveset. 
> > 
> > The only thing We can't implement is Multivariate inequalities, as we 
> will 
> > need CAD for that. 
>
> It's still a good idea to think about them when designing the APIs, as 
> we will hopefully eventually get a CAD implementation. 
>

Indeed.
I agree on that.
 

> Aaron Meurer 
>
> > 
> > 
> > On Friday, February 27, 2015 at 6:58:51 PM UTC+5:30, AMiT Kumar wrote: 
> >> 
> >> Hi, 
> >> 
> >> I was trying to explore solvers for multivariate functions in other 
> >> CAS like Maple and Mathematica and Maxima, 
> >> Here is the documentation I found about solvers in Maxima: 
> >> 
> >> 
> https://github.com/andrejv/maxima/blob/master/share/algebra/solver/solver1-en.html
>  
> >> 
> >> 
> >> I think we need to be very specific about the problem set we are 
> >> going to tackle for 'Multivariate Functions' in the solveset. 
> >> Here are the cases where we encounter Multivariate Functions: 
> >> 
> >> * System of Multivariate Equations: 
> >> This is a lot of work in the Polynomials module, which needs to 
> >> be done, before addressing it in solvers. 
> >> 
> >> * Multivariate Inequalities: 
> >> This can also not be addressed in solvers until we have CAD 
> >> (Cylindrical Algebraic Decomposition), which is itself a GSoC 
> >> Project. 
> >> 
> >> The couple of cases which are in the scope of current discussion are: 
> >> * Multivariate Single Equation with Point solution. 
> >> We can only solve equations which are of the form (x - a)*(y - b)*(z - 
> >> c)*... 
> >> or convertible to this form. 
> >> Though other popular CAS are also not good for solving equations other 
> >> than 
> >> this form. If we don't know the solution we can just return it in terms 
> of 
> >> other 
> >> variables as in next case. 
> >> 
> >> * Multivariate Single Equation with non-point solution. 
> >> In this case, we can output results in the form of the 
> >> other variables: For Example: 
> >> 
> >> In []: solve(x**2 + y**3 == 1, (x, y)) 
> >> Out[]: {x, sqrt(1 - y**3)}  # x: arbitrary 
> >> 
> >> Similiar to Wolframalpha: 
> >> http://www.wolframalpha.com/input/?i=solve%28x**2+%2B+y**2+%3D%3D+1%29 
> >> 
> >> Or else in this case we could have some functionality for curve 
> >> detection (maybe using geometry module), to return information about 
> >> curves in cases like: 
> >> 
> >> In []: solve(x**2 + y**2 == 4) 
> >> Out[]: {Circle, (0, 0), 2} 
> >> 
> >> 
> >> (as Here we know that the output: x = +/-sqrt(y**2 - 1) is not of much 
> >> significance.) 
> >> 
> >> We need not worry much about multivariate, the focus should be more on: 
> >> 1) Solving Transcendental equations, such as 'Equation solvable by 
> >> LambertW. 
> >> 2) Linear Systems (system of linear equations) 
> >> 3) Modularising the current code. 
> >> 4) What else set infrastructure we need. 
> >> 
> >> I would also like to discuss more about the sub-modules in which the 
> >> current solve needs to broken, such as: linear systems, 
> >> transcendental Equations, etc. 
> >> 
> >> AMiT Kumar 
> >> 3rd Year Undergrad 
> >> Delhi Technological University 
> >> www.iamit.in 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> On Friday, February 6, 2015 at 12:08:45 AM UTC+5:30, AMiT Kumar wrote: 
> >>> 
> >>> 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 sympy+un...@googlegroups.com <javascript:>. 
> > To post to this group, send email to sy...@googlegroups.com 
> <javascript:>. 
> > 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/de89e1e3-d053-439d-bb9a-32777f3a6b80%40googlegroups.com.
>  
>
> > 
> > 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 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/e6dd9d21-cb7d-45e4-a657-ac127ae3b6eb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to