>I appreciate you effort, I wanted to point out that you can use the SymPy 
wiki 
 >[2] to maintain your notes about your solvers and other modules. It would 
be 
 >helpful to you and other people who would want to work on solvers in 
future.

I have shifted some discussions in sympy wiki page ,please have a look
https://github.com/sympy/sympy/wiki/Solveset-and-Solver-Discussion

--
Shekhar Prasad Rajak

On Saturday, 13 February 2016 19:17:35 UTC+5:30, Shekhar Prasad Rajak wrote:
>
> Thanks a lot Harsh, for the suggestions and reviewing the ideas.
>
> After going through many issues ,I found that the main issues on 
> trigonometric  are 
> https://github.com/sympy/sympy/issues/10217 and 
> https://github.com/sympy/sympy/issues/9824
> (nested expressions)
> and right now solveset can't solve this types of equation system :
>
> 1 − 2cosθ1 + 2cosθ2 − 2cosθ3 = −0.8
>
> 1 − 2cos(5*θ1) + 2cos(5*θ2) − 2cos(5*θ3) = 0
>
> 1 − 2cos(7*θ1) + 2cos(7*θ2) − 2cos(7*θ3) = 0
>
> and simple linear system having trig functions instead fo `x`
>
> One of the good way may be using general function decomposition 
> https://github.com/sympy/sympy/pull/9831 
>
>      >>> decompogen(sin(cos(x)), x)
>     [sin(x), cos(x)]
>     >>> decompogen(sin(x)**2 + sin(x) + 1, x)
>     [x**2 + x + 1, sin(x)]
>     >>> decompogen(sqrt(6*x**2 - 5), x)
>     [sqrt(x), 6*x**2 - 5]
>     >>> decompogen(sin(sqrt(cos(x**2 + 1))), x)
>     [sin(x), sqrt(x), cos(x), x**2 + 1]
>
>   
>
> so now we get the expressions in `x` and functions also.By solving these 
> functions top to bottom recursively ,will lead to final result. 
> This may solve all types of nested equations (right now solveset can't 
> solve nested modulo/Trig equations properly ) problems.
>
> but to solve this 
> 1 − 2cosθ1 + 2cosθ2 − 2cosθ3 = −0.8
>
> 1 − 2cos(5*θ1) + 2cos(5*θ2) − 2cos(5*θ3) = 0
>
> 1 − 2cos(7*θ1) + 2cos(7*θ2) − 2cos(7*θ3) = 0
>
> need some work with deocompogen and function solvers ,I found that docs 
> have some examples to solve simple functions like:
>
> >>> solve(f(x) - x, f(x))[x]
>
>
> but it can solve only simple equations.Still I need some more idea to 
> solve this types of complicated equation system.
>
> > After checking old `solver` and finding ways to solve non linear system 
> ,I
> > found that one of the good way may be substitution method (for simple 
> cases :
> > http://www.purplemath.com/modules/syseqgen5.htm) and Using the Quadratic
>
> > Formula(some complicated cases:
> > http://www.purplemath.com/modules/syseqgen6.htm).
>
>   > As far as I remember this methods are already implemented as radical 
> solver.
>
> I didn't find about radical solver in sympy docs ,Please anyone share a 
> link regarding this.
> Right now solveset can handle single equation for a single variable, in 
> any domain either real or complex.
> So there is need of non linear system in solveset ,isn't it ? or using old 
> solve for solving non linear system?
>
> --
> Shekhar Prasad Rajak
>
> On Friday, 12 February 2016 23:00:26 UTC+5:30, Harsh Gupta wrote:
>
>> > >>> solveset(sin(x)-1/2,x,S.Reals)
>> > ∅ Here we need to make sure we write solveset(sin(x)-S(1)/2,x,S.Reals) 
>> , that
>> > most of the people don't use generally.Is there any way tha t we dont 
>> need to
>> > write like this  S(1)/2.
>>
>> The issue is because of the rules of the python language. Trying to solve 
>> this
>> issue can too hard or might bring about a lot of unexpected behavior. An 
>> easier
>> things you can do is issuing a warning if you see a float in the input
>> equation.
>>
>>
>> > After checking old `solver` and finding ways to solve non linear system 
>> ,I
>> > found that one of the good way may be substitution method (for simple 
>> cases :
>> > http://www.purplemath.com/modules/syseqgen5.htm) and Using the 
>> Quadratic
>> > Formula(some complicated cases:
>> > http://www.purplemath.com/modules/syseqgen6.htm).
>>
>> As far as I remember this methods are already implemented as radical 
>> solver.
>>
>>
>> > Right now I come across the solution that can solve the trigonometric 
>> equation
>> > g = 0 where g is a trigonometric polynomial. We can convert that into a
>> > polynomial system by expanding the sines and cosines in it, replacing 
>> sin(x)
>> > and cos(x) by two new variables s and c. before that need to check 
>> arguments
>> > are same or not.It should not be like sin(x) and cos(x**2). So now we 
>> have two
>> > variables and 1 equation another equation we know  : s**2 + c**2 − 1 = 
>> 0.Means
>> > sin(x)**2 + cos(x)**2 =1. Similarly we can solve others like tan,sec ;
>> > cot,cosec .But I think it will be better if we convert all the 
>> trigonometric
>> > functions into sin and cos ,and solve them for all cases .Then we don't 
>> need to
>> > add same types of codes. It need another method solveset_trig which 
>> converts
>> > the trigonometric equation to only sin, cos form then polynomial system
>> > replacing sin(x) and cos(x) by two new variables s and c.Then need to 
>> solve
>> > linear or non linear system equation. Now replacing s -> sin and c-> 
>> cos and
>> > then solveset_real can easily solve 
>>
>> You can as well solve trig equations by writing them in form of sines or
>> cosines, as you recognized the current method works by writing them in 
>> exp. You
>> should go ahead and implement it. There is no clear cut "better" method 
>> and
>> the answer depends on the case at hand, which is also the case other 
>> techniques
>> and sub solvers. I was thinking about a "search" on the solving 
>> techniques and
>> I have described the idea in the solveset doc[1] but at this stage the 
>> idea is too vauge to
>> go ahead with the implementation.
>>
>> > it contain a lot of information.It took me long time to go through the
>> > attached PR,Issues, and discussions.
>>
>> I appreciate you effort, I wanted to point out that you can use the SymPy 
>> wiki
>> [2] to maintain your notes about your solvers and other modules. It would 
>> be
>> helpful to you and other people who would want to work on solvers in 
>> future.
>>
>>
>>
>> [1]: 
>> https://github.com/sympy/sympy/blob/master/doc/src/modules/solvers/solveset.rst#search-based-solver-and-step-by-step-solution
>> [2]: https://github.com/sympy/sympy/wiki
>>
>>
>> On 12 February 2016 at 09:28, Shekhar Prasad Rajak <[email protected]
>> > wrote:
>>
>>> After checking old `solver` and finding ways to solve non linear system 
>>> ,I found that one of the good way may 
>>> be substitution method (for simple cases : 
>>> http://www.purplemath.com/modules/syseqgen5.htm)and Using the Quadratic 
>>> Formula(some complicated cases: 
>>> http://www.purplemath.com/modules/syseqgen6.htm).
>>>
>>> There are other ways also but to solve all types of Non linear system 
>>> this method will be usefull and
>>> I have checked that many times we get multiple solution in non linear 
>>> system and sympy is able to solve
>>> any type of equtaion that we get after the substitution.
>>>
>>> Please give your valuable suggestion.
>>>
>>> --
>>> Shekhar Prasad Rajak
>>>
>>> On Thursday, 4 February 2016 00:40:34 UTC+5:30, Shekhar Prasad Rajak 
>>> wrote:
>>>>
>>>>
>>>> Hello, 
>>>> my name is Shekhar Prasad Rajak.I want to discuss about Solver and 
>>>> Solveset module
>>>> https://github.com/sympy/sympy/wiki/GSoC-2016-Ideas#solvers .I am 
>>>> going to apply for GSoc'16, so trying to know
>>>> what sympy community expecting.
>>>> Solveset came to Replace all internal solve() calls 
>>>> https://github.com/sympy/sympy/issues/8711
>>>> So I should focus on Solveset,right?
>>>> I have some questions :
>>>> 1.What are the main problems/issues in Solver and Solveset right now?
>>>> 2.Is Solveset module done?If not,what are the main features, that 
>>>> should be added ?
>>>> I have seen Harsh's PR : https://github.com/sympy/sympy/pull/7523
>>>> It seems, these need some works :
>>>> -functions solvable by LambertW
>>>>   -functions that can be recast as polynomials with a change of 
>>>> variables this, for example; this can be 
>>>>   factored out of solve  where multiple generators are handled
>>>>   -use something like this : 
>>>> https://github.com/sympy/sympy/pull/7523#issuecomment-62198981
>>>>   to handle the XFAILed test test_real_imag_splitting1, this will be 
>>>> handled in the set module.
>>>>
>>>> 3.This is list of Issues/ Discussions I found. 
>>>>
>>>> https://github.com/sympy/sympy/wiki/GSoC-2014-Application-Harsh-Gupta:-Solvers#relevant-issues-discussions-and-references
>>>>   
>>>> <https://github.com/sympy/sympy/wiki/GSoC-2014-Application-Harsh-Gupta:-Solvers#relevant-issues-discussions-and-references>
>>>> but I don't know, whether they are solved or not.
>>>> Issues which are still open in github repo, need solutions.
>>>> There are also links of pdf and research papers, I am not sure whether 
>>>> they are implemented or not.
>>>>
>>>> 4.Can we use python library multiprocessing,Synchronization for the 
>>>> faster execution?one issue was opened for the same,which is closed now.But 
>>>> it is always better to take less time.
>>>>
>>>>
>>>> --
>>>> Shekhar Prasad Rajak
>>>>
>>>> -- 
>>> 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/6edb47d9-a19a-4b4f-a450-2e6460f9eb7a%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/sympy/6edb47d9-a19a-4b4f-a450-2e6460f9eb7a%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> -- 
>> Harsh
>> Sent from a GNU/Linux
>>
>

-- 
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/744f8500-5d6e-48e8-acc6-f64b55447f40%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to