Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: Re: Complex Oddity

  • To: mathgroup at smc.vnet.net
  • Subject: [mg57658] Re: [mg57631] Re: Complex Oddity
  • From: "David Park" <djmp at earthlink.net>
  • Date: Fri, 3 Jun 2005 05:33:45 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

John,

Is your example illustrative of your typical case?

Why not just...

f = E^(I*d)

ComplexExpand[Abs[f]^2]
1

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/

From: jfeth at azlink.com [mailto:jfeth at azlink.com]
To: mathgroup at smc.vnet.net


I use Jones matrices to evaluate optical circuits and always need to
find the intensity of two interfering electric fields.  The intensity
(or brightness) of a field is found as a positive real value from a
complex field as the field times the complex conjugate of the field.
As you can see below, Mathematica gives yet another complex value when
one does this straightforward multiplication instead of the real value
that, I might add, is drilled into all students at the first glimpse of
 root(-1).  For several weeks I struggled to use Mathematica in my
circuit evaluation until one inspired Saturday, after several pots of
coffee, dumb luck and iteration brought forth Intensity[expr_]:= below.
 I don't know why it works, I don't know how it works, and I
don't know another way to do the job, but, even as ugly as it is, at
least it works and it works very quickly.  Importantly, it also gives
me answers as cosines with arguments that are (real)sums and
differences of characteristic delays, misalignments, and phase
modulation terms.

f=E^(I*d)

In[1]:=
f*Conjugate[f]

Out[1]=
 E^ (I*d - I*Conjugate[d])

In[2]:=
Intensity[expr_]:=
TrigReduce[ExpToTrig[expr*TrigToExp[ComplexExpand[Conjugate[ExpToTrig[expr]]
]]]]

In[3]:=
Intensity[f]

Out[3]=
1

With this solution in hand, as an optical engineer, I now have the
luxury of wondering 1) exactly what mathematical elegance (or utility)
is gained by Mathematica's assumption that every variable is always
complex, and 2) why there is apparently no way in Mathematica to
globally define a variable as a real number (i.e., its own conjugate).

Regards,

John Feth


John Reed wrote:
> Thanks to all who explained what is happening and how to work this problem
> correctly.  Now I know one facet of working with complex numbers.  I don't
> feel much better about this however.  I received one e-mail that said this
> was my fault for not reading the documentation closely enough.  This
problem
> came up in the book "Mathematica for Physics" second edition by Zimmerman
> and Olness.  They solve a problem using the Complex[a_,b_]->a rule, ( see
> page 91) but not the b part.  The b part was my idea.  Now I know why they
> didn't solve for the imaginary part this way.  They get the imaginary part
> by subtracting the real part from the complex expression and dividing by
I.
> How many other gotchas are hidden in the code, waiting to bite the unwary
> and relatively new user?  What documentation tells about this kind of a
> problem or do I just have to find them for myself by hopefully catching
the
> errors as they occur?
>
> John Reed
>





  • Prev by Date: Re: Re: Re: Limit of list
  • Next by Date: Re: Re: label origin on plot
  • Previous by thread: Re: Re: Complex Oddity
  • Next by thread: Re: Re: Complex Oddity