Although is not a problem by itself, I have noticed that when working with periodic functions, Reduce returns sometimes extra conditions that seem unnecessary. I was wondering whether this is a limitation of Reduce or a design choice that offers some kind of advantage under certain conditions.

A simple example would be this one:

Reduce[Sin[x] == 0,x,Reals]
Element[C[1], Integers] && (x==2π C[1] || x==π+2π C[1])

The solution is correct, but equivalent to the simpler (and more "human")

Element[C[1], Integers] && x==π C[1]

Simplify and FullSimplify don't simplify the expression further either.

Does anybody know why it behaves this way? Does this "expanded" solution offers some advantage over the simpler one? Is there a way to alter this behavior?


  • 1
    $\begingroup$ The analogous Reduce[Cos[x] == 0, x, Reals] gives the same kind of answer, but maybe makes more sense. Perhaps it's that the basic periodicity of the function is 2 Pi, and then it's giving the offsets from that basic periodicity. $\endgroup$
    – bill s
    Commented Aug 13, 2021 at 18:39
  • 3
    $\begingroup$ (1) Probably it finds the period and then particular solutions within a fundamental domain (e.g. $[0, 2\pi)$). (2) That seems a general approach that would work on more complicated cases. (It's the way I teach students to do it, in fact. There seems little advantage to simplifying down to a minimal number of solution sets, as I often want to know the solutions in the fundamental domain.) (3) Don't know (yet). $\endgroup$
    – Michael E2
    Commented Aug 13, 2021 at 18:43
  • $\begingroup$ Yes, I definitely see the value of the general approach you mention in (2), and I suspect that in more complicated cases may be useful handle it this way. But given that Mathematica is able to make really impressive simplifications, this one may be nice in this simple cases. I wonder if that simplification can be forced some way (I couldn't), just for the shake of knowledge. $\endgroup$
    – Jorge
    Commented Aug 13, 2021 at 19:00


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.