MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Abs[x] function

  • To: mathgroup at
  • Subject: [mg87846] Re: [mg87816] Abs[x] function
  • From: Andrzej Kozlowski <akoz at>
  • Date: Fri, 18 Apr 2008 07:10:38 -0400 (EDT)
  • References: <>

On 18 Apr 2008, at 15:37, Vladislav wrote:
> Who can explain the behavior. THe derivative Abs[x] at x=.5 is well
> defined and is equal to 1.
> In[1]:= D[Abs[x], x]
> Out[1]=
> \!\(\*SuperscriptBox["Abs", "\[Prime]",
> MultilineFunction->None]\)[x]
> In[2]:= % /. x -> .5
> Out[2]=
> \!\(\*SuperscriptBox["Abs", "\[Prime]",
> MultilineFunction->None]\)[0.5]

First of all your statement is simply not true. Mathematica's symbolic  
D works in the complex plane and in the complex plane the derivative  
of Abs at 1 is not defined:

Limit[(Abs[1 + t*I] - Abs[1])/t, t -> 0]


I Limit[(Abs[1 + t ] - Abs[1])/t, t -> 0]

The symbolic derivative D automatically applies the chain rule, which  
explains why it gives you the answer you got (it returns Abs'[1]  
because it does not know what it should be). If you want to  
differentiate in the real sense, a non-analytic function at a point  
where it has a derivative you have several choices. One is to use  
numerical differentiation:

f[x_?NumericQ] := Abs[x]

Another is to use Refine before you differentiate:

D[Refine[Abs[x], x > 0], x] /. x -> 0.5

another way is the above approach using limits. There are still other  
ways but this should be enough.

Andrzej Kozlowski

  • Prev by Date: Re: heat equation through different media/problem with constant flux
  • Next by Date: Re: Re: A Problem with Simplify
  • Previous by thread: Abs[x] function
  • Next by thread: Re: Abs[x] function