Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Why does this:

Simplify[Abs[x + I], Element[x, Reals]]

give me

Abs[x + i]

Is there a way to force Mathematica to give me the following answer?


share|improve this question
@Kuba Thanks for the tip. But I'll wait for someone to tell me why the above doesn't work – Priyatham Mar 29 '14 at 8:39
The fastes way is to use ComplexExpand which assumes that all constants are real: ComplexExpand@Abs[I + x]. Default ComplexityFunction is LeafCount which gives 6 for Abs form and 9 for Sqrt, that's why it is left. – Kuba Mar 29 '14 at 8:55
closely related – Kuba Mar 29 '14 at 9:00
Also related: 23867 – Michael E2 Apr 8 '15 at 11:50

If you steal the wizard's explanation an apply it to your case

cf[e_] := 100 Count[e, _Abs, {0, Infinity}] + LeafCount[e]


FullSimplify[Abs[x + I], x \[Element] Reals, ComplexityFunction -> cf]

(* Sqrt[x^2+1] *)

but once again I just copied and vaguely adapted the link provided by kuba

share|improve this answer
I understand that LeafCount gives the number of trees in the expression tree. Is there a place where I can read more about it and the ComplexityFunction? – Priyatham Mar 29 '14 at 13:58
how about if you Count[..,I,..]? may be more general if it works (sorry cant try frm here) – george2079 Mar 29 '14 at 15:17
@george2079 cf[e_] := 100 Count[e, _Complex, {0, Infinity}] + LeafCount[e] works too – chris Mar 29 '14 at 15:33
You can also type ComplexityFunction in the find button on the left above in the menu bar... – chris Mar 29 '14 at 20:03

How about using ComplexExpand

ComplexExpand[Abs[x + I]]


Sqrt[1 + x^2]
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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