10
$\begingroup$

The following is a curiosity I just observed. Consider the following Reduce command:

Reduce[
  Exp[r + I f] == Exp[R + I F]
   && Exp[r - I f] == Exp[R - I F]
   && r > 0 && R > 0 && 0 < f < 2 \[Pi] && 0 < F < 2 \[Pi]
  , {r, f}] // FullSimplify

0 < F < 2 \[Pi] && R > 0 && r == R && f == F + I (r - R)

In the above, even though r==R is clearly stated in the result, f is still given in terms of

f == F + I (r - R)

instead of just f == F. And that despite FullSimplify having been applied.

In this trivial case this is of course not a huge issue. However, does this mean that we should in general expect Reduce with FullSimplify to overlook obvious simplifications in more complicated systems as well, so that a seemingly complicated output likely might still be hugely reducible?

By the way, I am on Windows 10 and

$VersionNumber

11.1

$\endgroup$
14
$\begingroup$

Use Assuming and the Backsubstitution option for Reduce

$Version

(* "11.3.0 for Mac OS X x86 (64-bit) (March 7, 2018)" *)

constraints = r > 0 && R > 0 && 0 < f < 2 π && 0 < F < 2 π;

Assuming[constraints, 
 Reduce[Exp[r + I f] == Exp[R + I F] && Exp[r - I f] == Exp[R - I F] && 
    constraints, {r, f}, Backsubstitution -> True] // FullSimplify]

(* r == R && f == F *)

Or,

Reduce[Exp[r + I f] == Exp[R + I F] && Exp[r - I f] == Exp[R - I F] && 
   constraints, {r, f}, Backsubstitution -> True] // 
 FullSimplify[#, constraints] &

(* r == R && f == F *)
$\endgroup$
  • $\begingroup$ +1 Wow that looks handy, cool! $\endgroup$ – Mehrdad May 25 '18 at 6:01

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.