MathGroup Archive 2005

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

Search the Archive

Re: Complex Oddity

  • To: mathgroup at
  • Subject: [mg57468] Re: [mg57455] Complex Oddity
  • From: "David Park" <djmp at>
  • Date: Sun, 29 May 2005 01:03:27 -0400 (EDT)
  • Sender: owner-wri-mathgroup at


Just look at the full form and you will see what happened.

z = x + I y;

z // FullForm
Plus[x, Times[Complex[0, 1], y]]

It is not Complex[x,y]!

Use the Re, Im and ComplexExpand function.

{Re[z], Im[z]} // ComplexExpand
{x, y}

When doing complex algebra, you will find ComplexExpand almost
indespensible. Check out its Help page carefully. The TargetFunction option
is often especially useful.

David Park
djmp at

From: John Reed [mailto:nospamjreed at]
To: mathgroup at

I was trying to separate the real and imaginary parts of a complicated
expression, and ended up with something strange.  Here is a short version of
what happened.

Let z = x + I y, then realPart = z /. {Complex[a_,b_]->a} gives realPart =
x.  Great!

Now, try imagPart = z /. {Complex[a_,b_]->b}  returns with imagPart = x + y.

In my original expression, it was harder to see, but the same error was
occuring.  What I tried first was using Re[z] and Im[z], but then I have to
work with Im[y] and Im[x].  It seems to me two things need to be done here.
First, be able to assign variables so that they always stay real or else
indicate an error is occuring if they turn out to be complex, and second do
something to avoid errors like the above.  I have to say that I don't trust
Mathematica's answers as much as I did before this came up. Now I feel like
I better have a good idea of what the answer is before I  trust Mathematica.

John Reed

  • Prev by Date: Re: Solve question
  • Next by Date: Re: Re: Printing - mathematica cropping the right hand side... :(
  • Previous by thread: Re: Complex Oddity
  • Next by thread: Re: Complex Oddity