# Simple Complex Conjugate of exponentials

Often I work with complex exponentials, and I want Mathematica to understand that the conjugate of $e^{iHt}$ is $e^{-iHt}$.

Is there a simple way of doing this? Typically I use the complex-expand function to deal with mathematica not knowing if a variable is real/complex, but this time it returns my output in terms of sins & cosines, which isn't desirable.

Try

TrigToExp[ComplexExpand[Conjugate[E^(I H t)]]]
(*E^(-I H t)*)


You might need to add a Simplify in some cases. ComplexExpand assumes everything is real automatically.

Simplify[Conjugate[Exp[I h t]], h t \[Element] Reals]
(* E^(-I h t) *)


Simplify can handle this, if the assumption that the exponent is purely imaginary holds. Note that this assumes that the product is real: if each variable is real, you may wish to state that instead:

Simplify[Conjugate[Exp[I h t]], {h \[Element] Reals, t \[Element] Reals}]


If Simplify takes too long it's also possible that you could consider an equivalent replacement rule:

Conjugate[Exp[I h t]] /. Conjugate[h t]->h t


However, you'll have to be a bit more careful with this, since the inside term can vary quite a bit based on assumptions, variable ordering, etc.

If you are not certain that $Ht$ is real, then it's not actually necessarily true that $e^{iHt}=e^{-iHt}$.

And if you are absolutely, positively, and perfectly certain that the conjugate of an exponential containing I is purely imaginary, you can do this:

Unprotect[Conjugate];
Conjugate[Exp[x_ /; Not[FreeQ[x, I]]]] :=
Evaluate[Exp[Conjugate[x]]] /. Conjugate[y_] -> y;


That will cause issues in a variety of places, so double check the use case. You will likely need to refine the qualifier (Not[FreeQ[x,I]] is almost definitely overzealous).

• This works, but I'm hoping for something even simpler. For me, I /always/ want to assume my variables are real unless I explicitly say that they are real. Every time I write e^{i*anything} write in by hand the variables in the exponent that are real. Is there any way I can make a function that always simplifies assuming the internal variables are real? – Steven Sagona Dec 31 '17 at 0:10
• @StevenSagona: Added a more extreme approach that should also work, but might introduce unexpected errors in complicated expressions. – eyorble Dec 31 '17 at 0:19
• So I attempted to run the first part of your answer on my example, and it's not working. Any idea what my mistake is? CC[A_] := Simplify[Conjugate[A], c t d [Element] Reals]; probes = d E^(I c t); CC[probes] returns: E^(-I Conjugate[c t]) Conjugate[d] – Steven Sagona Dec 31 '17 at 0:30
• If you're doing it that way, you'll probably want to individually define that each variable is real, not just the product: {c \[Element] Reals, t \[Element] Reals, d \[Element] Reals}. – eyorble Dec 31 '17 at 0:34
• switched it with no luck. This is what I put: Simplify[Conjugate[A], c [Element] Reals , t [Element] Reals, d [Element] Reals]; – Steven Sagona Dec 31 '17 at 0:48