2

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}$

Priyatham
  • 121
  • 4

2 Answers2

5

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

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
chris
  • 22,860
  • 5
  • 60
  • 149
  • 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
  • 1
    How about http://reference.wolfram.com/mathematica/ref/ComplexityFunction.html – 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
3

How about using ComplexExpand

ComplexExpand[Abs[x + I]]

Gives:

Sqrt[1 + x^2]
RunnyKine
  • 33,088
  • 3
  • 109
  • 176