Why doesn't Abs simplify further?

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?

$\sqrt{x^2+1}$

• @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]

Then

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

• 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
• – chris Mar 29 '14 at 14:27
• 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]]

Gives:

Sqrt[1 + x^2]