Hi,

Sorry for late reply, (I was busy with Mid terms & Assignments).

Based on the above Ideas, I have made the draft of my Proposal on SymPy 
wiki, Please have a look:
https://github.com/sympy/sympy/wiki/GSoC-2015-Application-AMiT-Kumar--Solvers-:-Extending-Solveset


Thanks,


AMiT Kumar
3rd Year Undergrad
Delhi Technological University
www.iamit.in

On Tuesday, March 10, 2015 at 12:15:15 AM UTC+5:30, Aaron Meurer wrote:
>
> That sounds good, except as I noted at 
> https://groups.google.com/forum/#!msg/sympy/42GdMJ9ssyM/swC6bHVunP8J, 
> it's very important to build this around a framework of rewriting and 
> decomposition. You want to be able solve, f(g(x)) = 0, where f is a 
> polynomial and g is a lambertW (for example).  You want the hints to 
> be as simple as possible, and any complicated equations to be solvable 
> by an application of possibly many hints. This is more complicated 
> than what the ODE solver does. 
>
> Rewriting basically boils down to simplifying the matching portion of 
> the hints. This is something that is not done very well in the ODE 
> system, so I would only look there to see how it is lacking. 
>
> You want each hint to match a simple pattern, and then have some set 
> of rules on how to rewrite different expressions to that pattern 
> mathematically, even if they don't match it structurally. I would take 
> a look at the rules system used in the fu algorithm, and in the unify 
> submodule. Also take a look at Francesco's pattern matching 
> suggestions (search the mailing list and the wiki). 
>
> Aaron Meurer 
>
> On Sun, Mar 8, 2015 at 12:18 AM, AMiT Kumar <[email protected] 
> <javascript:>> wrote: 
> > Hi, 
> > I was thinking, How about designing the  solveset similiar 
> > to the ODE Module . Something like hints system to classify solvers? 
> > 
> > Example: 
> > 
> > primaryhint = [ 
> >     "univariate", 
> >     "multivariate", 
> >     "single_eq", 
> >     "multiple_eq" 
> >     ] 
> > 
> > 
> > subhints = [ 
> >     'solve_linear_system' 
> >     'linear_trig', 
> >     'polynomial', 
> >     'transcendental', 
> >     'piecewise', 
> >     'relational' 
> >     'solve_lambertw' 
> >     'miscellaneous' 
> >     ] 
> > 
> > 
> > def classify_solver(f, symbols=None): 
> >     """ 
> >     Clasifies the input equation(s)/function(s) to solve for, into 
> possible 
> >     hints such as linear, univariate, multivariate, etc. 
> >     """ 
> >     hints = [] 
> > 
> >    # Methods to classify Equations 
> > 
> > def solveset(f, symbol=None): 
> > 
> >     if eq_type == 'linear': 
> >         solve_linear(f, symbol) 
> > 
> >     if eq_type == 'linear_system': 
> >         solve_linear_system(f, symbol) 
> > 
> >     . 
> >     . 
> >     . and so on 
> > 
> > 
> > 
> > In that case we will be able to add new solvers, without messing with 
> > the others, and we will have a more robust and flexible framework 
> > which will be easy to extend. 
> > 
> > I think, building a robust framework, which felicitates further 
> > development, worth much more than adding new solvers. 
> > 
> > Thoughts from the community are invited. 
> > 
> > AMiT Kumar 
> > 
> > -- 
> > 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] <javascript:>. 
> > To post to this group, send email to [email protected] 
> <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/5b7393ef-7d4d-46f9-bfcd-dbbeb38639c4%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 [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/6247761d-1673-4f10-bfcd-c0b92a555e7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to