MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Getting simple answers from Reduce, ComplexExpand and FullSimplify

  • To: mathgroup at
  • Subject: [mg57868] Re: Getting simple answers from Reduce, ComplexExpand and FullSimplify
  • From: "Hugh Goyder" <h.g.d.goyder at>
  • Date: Sat, 11 Jun 2005 03:35:23 -0400 (EDT)
  • Organization: University of Warwick, UK
  • References: <d893st$t26$>
  • Sender: owner-wri-mathgroup at

Many thanks for all the answers I received. The best answer seems to be
ex = 2 Cos[z] + I a Sin[z];

InputForm[Reduce[{0 == ex // TrigToExp, 0 < a < 1}, z]]

C[1] \[Element] Integers && Inequality[0, Less, a, Less, 1] &&
z == (-I/2)*((2*I)*Pi*C[1] + Log[(-2 + a)/(2 + a)])

Two points are interesting.

    1.  I used ComplexExpand on the output of Reduce and got a different and
incomprehensible answer compared to Andrzej Kozlowski and Pratik Desai who
used ComplexExpand and TrigToExp, respectively, on the input to Reduce and
got a simple answer. Is this obvious from the way Reduce works or does one
get this by trial-and-error and tinkering? (I don't  like tinkering I don't
think you can really learn and understand by tinkering with computation.)

    2. I note that Reduce sometimes generates a constant, C[1],  that is an
element of the Integers and also has Im[C[1]] == 0. I know that there are
Gaussian Integers but I would have thought that the definition of Integers
in Mathematica would be restricted to real integers.


    Hugh Goyder
"Hugh Goyder" <h.g.d.goyder at> wrote in message
news:d893st$t26$1 at
> Below the expression ex has roots, rts, where n in an integer and the
> constant a is in the interval 0 < a <1. We may check this using
> as follows.
> ex=2 Cos[z]+I a Sin[z];
> rts=z ->Pi(2n-1)/2 + I Log[(2+a)/(2-a)]/2;
> FullSimplify[0 == ex/.rts,Element[n,Integers]]
> My problem is to try and deduce the roots using computer algebra rather
> by hand. (I also have other expressions I would like to work on.) My
> at using Reduce is partially successful but leads to unfamiliar, and
> difficult to interpret, ArcTanh functions
> Reduce[{ex == 0,0<a<1},z]
> An attempt with FullSimplify and ComplexExpand to crack the ArcTanh
> is again partially successful in giving the imaginary part I require.
> However, I am stuck with Arg functions with complex arguments. The Arg
> Functions are just equal to -Pi/2 but I cannot crack them further. Any
> suggestions for simplifying the output from Reduce so that I get the
> form I guessed at the start? Alternativly, are there more methods for
> simplifing the complex output?
> FullSimplify[ComplexExpand[(2*I)*ArcTanh[a/2+(I/2)*Sqrt[4-a^2]]],{0<a<1}]
> FullSimplify[ComplexExpand[Arg[2-a-I Sqrt[4-a^2]]-Arg[
> 2+a+I Sqrt[4-a^2]]],{0<a<1}]
> Thanks
> Hugh Goyder

  • Prev by Date: Solving a recursive system of 3x3 linear systems...
  • Next by Date: Re: Re: Mathematica equivalent complexplot
  • Previous by thread: Re: Getting simple answers from Reduce, ComplexExpand and FullSimplify
  • Next by thread: Re: Re: Getting simple answers from Reduce, ComplexExpand and FullSimplify