Skip to main content
4 of 4
Made English clearer and more idiomatic. Fixed some formatting problems. Removed redundancies.

How do I simplify an embedded sub-expression without affecting other sub-expressions?

I have an expression which is very large and which has several sub-expressions with head Conjugate. What I want to do is simplify the Conjugate[...] sub-expressions without affecting other sub-expressions.

The first method I considered is was the Transformationfunctions option of Simplify. I wrote:

Simplify[expr,Transformationfunctions->{Conjugate}] 

Well, Conjugate does indeed disappear, but the result is wrong. For example (with $Assumptions set so all variables are considered real)

FullSimplify[Conjugate[ t1 (2 Cos[(Sqrt[3] kx)/2] Cos[ky/2] + Cos[ky]) + I t1 (-2 Cos[(Sqrt[3] kx)/2] Sin[ky/2] + Sin[ky])], Transformationfunctions->{Conjugate}] 

gives

t1 (2 Cos[(Sqrt[3] kx)/2] Cos[ky/2] + Cos[ky]) + I t1 (-2 Cos[(Sqrt[3] kx)/2] Sin[ky/2] + Sin[ky]) 

The second method I considered is to use ComplexExpand //@ Conjugate. Since all the variables in my expression are declared real variables, Conjugate[expr] will become ComplexExpand //@ Conjugate[expr]. To make such this substitution, I could use search-and-replace and evaluate-in-place, but as I have said, the expression is large, so I don't want to do it that way. Instead I did the following:

largeexpr /. Conjugate -> ComplexExpand //@ Conjugate 

But this did not work.

Here largeexpr is an expression containing sub-expressions with head Conjugate. For example,

Sqrt[t1^2]+Conjugate[ t1 (2 Cos[(Sqrt[3] kx)/2] Cos[ky/2] + Cos[ky]) + I t1 (-2 Cos[(Sqrt[3] kx)/2] Sin[ky/2] + Sin[ky])] 

So can anyone point out what I did wrong? Or suggest a better solution?

matheorem
  • 17.7k
  • 8
  • 53
  • 121