solveset_real(exp(I*x), x) for real `x`

已查看 29 次
跳至第一个未读帖子

Gaurav Dhingra

未读,
2015年7月1日 13:41:022015/7/1
收件人 sy...@googlegroups.com
Hi all
Though `solveset_real` claimes to be complete in terms of real solution returned
But for this

>>> x = Symbol('x', real=True)
>>> solveset_real(exp(I*x), x)
FiniteSet(0)

But probably the solution is what is returned for the `solveset_complex`
>>> y = Symbol('y')
>>> solveset_complex(exp(I*y), y)
ImageSet(Lambda(_n, 2*_n*pi), Integers())    # correct solution returned
                                     # same should be returned for `solveset_real` ?

Is there any reason why we just get `FiniteSet(0)`  ?
Cheers
Gaurav

Harsh Gupta

未读,
2015年7月1日 13:54:072015/7/1
收件人 sy...@googlegroups.com
> Though `solveset_real` claims to be complete in terms of real solution returned

Well, solveset_real assumes that you are working in a real system,
that means both the equation and the solutions are in a real domain.
So solveset_real expect users to input equations like `exp(I*x) = 0`
and it should probably raise an error or maybe the doc string needs to
be updated. As you have figured out for yourself if someone wants to
work in the complex domain they can always use solveset_complex.
> --
> 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.
> To post to this group, send email to sy...@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/fbf1e47b-3bab-4c7c-9099-25a2eef27062%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
Harsh

Gaurav Dhingra

未读,
2015年7月1日 13:58:342015/7/1
收件人 sy...@googlegroups.com
Thanks for answering
Though i forgot put `-1` 
Sorry
Now equation is `solveset_real(exp(I*x) - 1, x)` now this should return  `ImageSet(Lambda(_n, 2*_n*pi), Integers())`
but currently returns `FiniteSet(0)` what about this ?

Harsh Gupta

未读,
2015年7月1日 14:44:402015/7/1
收件人 sy...@googlegroups.com
The "effective input" to exp in exp(I*x) is not real for any non-zero
real value of x, so 0 is the only real point in the domain hence the
solution is correct. I should clarify that the input function/equation
of solveset_real are functions of real variable [1] and are also
real-valued [2] functions. This means they should map a subset of real
numbers to a subset of real numbers.

[1]: https://en.wikipedia.org/wiki/Function_of_a_real_variable
[2]: https://en.wikipedia.org/wiki/Real-valued_function
> https://groups.google.com/d/msgid/sympy/dc3589c8-e9d7-40f6-b0ad-8810dedd5ae9%40googlegroups.com.
回复全部
回复作者
转发
0 个新帖子