Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: Abs[x] function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg87846] Re: [mg87816] Abs[x] function
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Fri, 18 Apr 2008 07:10:38 -0400 (EDT)
  • References: <200804180637.CAA12423@smc.vnet.net>

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]
0

while

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


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]
f'[0.5]
  1.

Another is to use Refine before you differentiate:

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

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