[Date Index]
[Thread Index]
[Author Index]
Re: Complex Oddity
*To*: mathgroup at smc.vnet.net
*Subject*: [mg57649] Re: Complex Oddity
*From*: "Carl K. Woll" <carlw at u.washington.edu>
*Date*: Fri, 3 Jun 2005 05:33:29 -0400 (EDT)
*Organization*: University of Washington
*References*: <d79enu$lbl$1@smc.vnet.net><d7hahj$3q6$1@smc.vnet.net> <d7mk2i$c36$1@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
<jfeth at azlink.com> wrote in message news:d7mk2i$c36$1 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
>
Isn't ComplexExpand[f Conjugate[f]] much simpler?
ComplexExpand[f Conjugate[f]]
1
Another idea is to use Simplify with assumptions:
Simplify[f Conjugate[f], Element[d, Reals]]
1
Is there some expr where the above approaches worked poorly for you?
Carl Woll
> 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: Complex Oddity**
Next by Date:
**NonlinearFit**
Previous by thread:
**Re: Re: Complex Oddity**
Next by thread:
**Re: using Scripts with GUIKit (bug?)**
| |