Re: Re: Complex Oddity
- To: mathgroup at smc.vnet.net
- Subject: [mg57645] Re: [mg57631] Re: Complex Oddity
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 3 Jun 2005 05:33:25 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
Clear[f]; f=E^(I*d); Simplify[Abs[f],Element[d, Reals]] 1 Abs[f]//ComplexExpand 1 d/: Re[d]:=d; d/:Im[d]:=0; Abs[f] 1 Bob Hanlon > > From: jfeth at azlink.com To: mathgroup at smc.vnet.net > Date: 2005/06/02 Thu AM 05:17:27 EDT > Subject: [mg57645] [mg57631] Re: Complex Oddity > > 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 > > > >