MathGroup Archive 2010

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

Search the Archive

Re: Conjugate of symbolic expressions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108076] Re: Conjugate of symbolic expressions
  • From: John Feth <johnfeth at gmail.com>
  • Date: Mon, 8 Mar 2010 06:10:18 -0500 (EST)
  • References: <hmvqlg$1gg$1@smc.vnet.net>

On Mar 7, 2:12 am, Joseph Gwinn <joegw... at comcast.net> wrote:
> I have been using Mathematica 7 to do the grunt work in solving some
> transmission-line problems, using the exponential form of the equations. 
>
> A typical form would be S1 = Exp[k1*x + I*omega*(t+tau)], describing signal one,
> where K1 is the attenuation in nepers per meter, I is the square root of minus
> one, omega is the angular frequency in radians per second, t is time and tau is
> a fixed time delay, t and tau being in seconds.
>
> Often I need the complex conjugate of S1, so I write Conjugate[S1].  The problem
> is that Mathematica does nothing useful, leaving the explicit Conjugate[] in the
> output expression, which after a very few steps generates a mathematically
> correct but incomprehensible algebraic hairball.
>
> Clearly Mathematica feels that it lack sufficient information to proceed.  In
> particular, it has no way to know that all variables are real until explicitly
> told.
>
> One way to solve this problem is
> FullSimplify[Conjugate[S1],Element[_Symbol,Reals]], and this often works.
>
> But equally often, it works too well, yielding the trignometric expansion of the
> desired exponential-form answer.  Nor is it clear why it sometimes works and
> sometimes works too well.  
>
> Using Simplify[] instead of FullSimplify[] doesn't seem to work at all.
>
> So my questions are:
>
> 1.  What controls FullSimplify[]'s behaviour here?
>
> 2.  What other ways are there to cause Mathematica to apply the Conjugate[]
> without holding back?
>
> Thanks,
>
> Joe Gwinn

Joe,

I struggled with Mathematica's sometimes obscure treatment of complex
numbers and one morning several years ago after massive coffee
fortification, I managed to force output sensible to mere humans. The
expressions below work for individual complex expresssions and also
(massive) Jones matrices.


Intensity[expr_] :=
  TrigReduce[
   ExpToTrig[
    expr*TrigToExp[ComplexExpand[Conjugate[ExpToTrig[expr]]]]]];
conj[expr_] := TrigToExp[ComplexExpand[Conjugate[ExpToTrig[expr]]]];


It looks pretty clumsy, but it is very fast and always gives
intelligible results.  It works with all versions of Mathematica from
5.2 through 7.  Drop me a line and I'll send you a notebook with some
optical circuits.

Regards,

John Feth



  • Prev by Date: Problems with lexical scoping
  • Next by Date: Re: Re: Write an expression in a specific form
  • Previous by thread: Re: Conjugate of symbolic expressions
  • Next by thread: Re: Conjugate of symbolic expressions