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.


2 Answers 2



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 ∈ 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 ∈ Reals, t ∈ 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:

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

  • $\begingroup$ 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? $\endgroup$ Dec 31, 2017 at 0:10
  • $\begingroup$ @StevenSagona: Added a more extreme approach that should also work, but might introduce unexpected errors in complicated expressions. $\endgroup$
    – eyorble
    Dec 31, 2017 at 0:19
  • $\begingroup$ 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] $\endgroup$ Dec 31, 2017 at 0:30
  • $\begingroup$ 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}. $\endgroup$
    – eyorble
    Dec 31, 2017 at 0:34
  • $\begingroup$ switched it with no luck. This is what I put: Simplify[Conjugate[A], c [Element] Reals , t [Element] Reals, d [Element] Reals]; $\endgroup$ Dec 31, 2017 at 0:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.