I feel this should be simple

Reduce[Tan[x] ==  y/z && 0 < x && x < \[Pi]/2 && y > 0 && 
  z > 0, x, Reals] 

should return

x = ArcTan(y/z)

However, it returns something apparently equivalent, though much more complex:

y > 0 && z > 0 && x == 2*ArcTan[(-z + y*Sqrt[(y^2 + z^2)/y^2])/y]

Somehow I'm missing some logic here. Can someone please let me know what I'm missing?

  • 2
    $\begingroup$ You already stated your assumptions on x, y and z. If you leave out the Reals specification in Reduce, it gives you what you want (I'm not sure why, though). $\endgroup$ – Sjoerd Smit Jul 4 '19 at 9:14
  • $\begingroup$ If you throw an extra ArcTan[Tan[..]] around what x equals, it simplifies to the desired answer: y > 0 && z > 0 && x == ArcTan[ Tan[2 ArcTan[(-z + y Sqrt[(y^2 + z^2)/y^2])/y]]] // FullSimplify. I don't see why the desired answer doesn't just happen, even with the domain Reals. $\endgroup$ – Michael E2 Jul 4 '19 at 23:14

It seems the form of the solution is designed to exclude imaginary numbers in the output. Excluding Reals from the specification (as suggested by Sjoerd) frees up this requirement.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.