Re: Problems with differentiating Piecewise functions
- To: mathgroup at smc.vnet.net
- Subject: [mg86966] Re: Problems with differentiating Piecewise functions
- From: "David W.Cantrell" <DWCantrell at sigmaxi.net>
- Date: Thu, 27 Mar 2008 08:19:54 -0500 (EST)
- References: <fsd6ph$9hb$1@smc.vnet.net>
hlovatt <howard.lovatt at gmail.com> wrote:
> If I set up a piecewise function and differentiate it:
>
> In[112]:= pw1 = Piecewise[{{x^2, x <= 0}, {x, x > 0}}]
>
> Out[112]= \[Piecewise] {
> {x^2, x <= 0},
> {x, x > 0}
> }
>
> In[113]:= pw1 /. x -> 0
>
> Out[113]= 0
>
> In[114]:= pw1d = D[pw1, x]
>
> Out[114]= \[Piecewise] {
> {2 x, x < 0},
> {1, x > 0},
> {Indeterminate, \!\(\*
> TagBox["True",
> "PiecewiseDefault",
> AutoDelete->False,
> DeletionWarning->True]\)}
> }
>
> In[115]:= pw1d /. x -> 0
>
> Out[115]= Indeterminate
>
> Then at the joins between the pieces I get Indeterminate values,
> because the limit x <= 0 has become x < 0 after differentiation. Does
> anyone know a solution to this problem?
It's not a "problem"; Mathematica's result is correct because your function
is not differentiable at 0. (Note that, at 0, the derivatives from left and
right are 0 and 1, resp.)
Consider an example in which the function _is_ differentiable at the join
between the pieces:
In[16]:= D[Piecewise[{{x^2, x <= 0}, {x^3, x > 0}}], x]
Out[16]= Piecewise[{{2*x, x < 0}, {0, x == 0}}, 3*x^2]
This is also handled correctly by Mathematica.
David