Re: Re: Complex Oddity
- To: mathgroup at smc.vnet.net
- Subject: [mg57670] Re: [mg57631] Re: Complex Oddity
- From: Chris Chiasson <chris.chiasson at gmail.com>
- Date: Fri, 3 Jun 2005 05:34:34 -0400 (EDT)
- References: <d79enu$lbl$1@smc.vnet.net> <d7hahj$3q6$1@smc.vnet.net> <200506020917.FAA11965@smc.vnet.net>
- Reply-to: Chris Chiasson <chris.chiasson at gmail.com>
- Sender: owner-wri-mathgroup at wolfram.com
f = E^(I*d) Refine[f*Conjugate[f], Element[d, Reals]] On 6/2/05, jfeth at azlink.com <jfeth at azlink.com> wrote: > 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 > > > > -- Chris Chiasson http://chrischiasson.com/ 1 (810) 265-3161
- References:
- Re: Complex Oddity
- From: jfeth@azlink.com
- Re: Complex Oddity