MathGroup Archive 2004

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

Search the Archive

RE: Complexes, Reals, FullSimplify

  • To: mathgroup at
  • Subject: [mg48807] RE: [mg48782] Complexes, Reals, FullSimplify
  • From: "David Park" <djmp at>
  • Date: Thu, 17 Jun 2004 04:07:18 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

Why don't you use ComplexExpand?

expr = Re[(1 - 6* I)* Cos[x] - (1 + 2*I)*Sin[0.5*x]];

Cos[x] - Sin[0.5 x]

ComplexExpand is practically an indespensible command when dealing with
complex expressions. One should almost think of it as 'ComplexSimplify'.
Also, you will sometimes want to use the TargetFuctions option that goes
with ComplexExpand.

David Park
djmp at

From: Stergios J. Papadakis [mailto:stergios.papadakis at]
To: mathgroup at

Dear group,
I am trying to use expressions of the below form as boundary conditions
in NDSolve.  I keep getting "non-numerical" errors.  I have tried a lot
of things and reduced the problem to this:

These give different outputs:

FullSimplify[Re[(1 - 6* I)* Cos[x] - (1 + 2*I)*Sin[(1/2)* x]],Element[x,

FullSimplify[Re[(1 - 6* I)* Cos[x] - (1 + 2*I)*Sin[0.5*x]],Element[x,

I get:

\!\(Cos[x] - Sin[x\/2]\)

Re[(1 - 6 \[ImaginaryI]) Cos[x] - (1 + 2 \[ImaginaryI]) Sin[0.5 x]]

I think I can get my NDSolve to work if I can make the second
FullSimplify above give me an output without an Re in it.  Mathematica
assumes that 0.5 may have some tiny imaginary part and therefore keeps
everything for full generality.  How do I eliminate
this?  Note that I have simplified things a lot here, the actual
expression that I will be using has many terms that all have the
form above, with many significant digits, which depend on earlier
calculations.  I have tried using Chop,

FullSimplify[Chop[Re[(1 -
   6* I)* Cos[x] - (1 + 2*I)*Sin[0.5* x]]], Element[x, Reals]]

And that does not work, I get the same result.


  • Prev by Date: Re: FindMinimum Error
  • Next by Date: Re: Complexes, Reals, FullSimplify
  • Previous by thread: Re: Complexes, Reals, FullSimplify
  • Next by thread: Iterate initial conditions