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 >