
Re: Conjugate of symbolic expressions
Posted:
Mar 10, 2010 1:44 AM


S1 = Exp[k1 x + I \[Omega] (t + \[Tau])]
If k1, omega, t, and tau are real, then you can do the following:
S1 /. Complex[x_, y_] > Complex[x, y]
You can even make this nicer:
\!\(\*SuperscriptBox["x_", "*"]\) := x /. Complex[a_, b_] > Complex[a, b]
Then
\!\(\*SuperscriptBox["S1", "*"]\)
Gives this result:
E^(k1 x  I (t + \[Tau]) \[Omega])
You have to drop each of these into a notebook to see them.
Kevin
Joseph Gwinn wrote: > I have been using Mathematica 7 to do the grunt work in solving some > transmissionline 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 exponentialform 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 >

