MathGroup Archive 2010

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

Search the Archive

Re: Conjugate of symbolic expressions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108177] Re: Conjugate of symbolic expressions
  • From: Joseph Gwinn <joegwinn at comcast.net>
  • Date: Tue, 9 Mar 2010 06:28:41 -0500 (EST)
  • References: <hmvqlg$1gg$1@smc.vnet.net> <hn2mjv$49t$1@smc.vnet.net>

In article <hn2mjv$49t$1 at smc.vnet.net>, John Feth <johnfeth at gmail.com> wrote:

> 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.

I have to wonder if "conj[expr_]:=ComplexExpand[Conjugate[expr]]//TrigToExp" 
would work for your application, or if not, why?  I don't recall what was 
available in version 5.2, and there may be simpler solutions available in 
version 7.

Massive Jones Matricies are far more complex than what I'm doing, and so may 
make for a good test case.

Joe Gwinn


  • Prev by Date: Re: find index in an array
  • Next by Date: Re: Help Improving this integral calculation / solution
  • Previous by thread: Re: Conjugate of symbolic expressions
  • Next by thread: Re: Conjugate of symbolic expressions