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] 
> <javascript:>> 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] <javascript:>.
>> To post to this group, send email to [email protected] <javascript:>
>> .
>> 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/c4a8fa3c-6207-4bb3-9361-774f2e146b0f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to