Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I want to take the derivative of a distribution function which has a discontinuity at $0$. Here is the function:

temp0[x_] :=If[Element[x, Reals], Sqrt[Pi]*(Erfc[(-2 + Log[2])/(2*Sqrt[2])] + (1 + Erf[(1 +Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2])/Sqrt[2]] - Erfc[(-2 + Log[2])/(2*Sqrt[2])])*UnitStep[-Log[2]/2 - Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2]]) + Sqrt[(2*Pi)/E]*(Erf[Log[2]/(2*Sqrt[2])] - Erf[Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2]/Sqrt[2]])*UnitStep[-Log[2]/2 + Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2]] + 2*Sqrt[Pi]*(-Erf[(2 + Log[2])/(2*Sqrt[2])] + Erf[(1 + Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2])/Sqrt[2]])*UnitStep[-Log[2]/2 + Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2]] + Sqrt[(2*Pi)/E]*(Erf[Log[2]/(2*Sqrt[2])] + Erf[Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2]/Sqrt[2]])*UnitStep[Log[2]/2 + Piecewise[{{(x - Log[2])/2, x < 0}}, (x + Log[2])/2]], Integrate[(Sqrt[2]*UnitStep[-y - Log[2]/2] + 2*((Sqrt[2] - E^y)*UnitStep[y - Log[2]/2] + E^y*UnitStep[y + Log[2]/2]))/E^((1 + y)^2/2), {y, -Infinity, Piecewise[{{(x - Log[2])/2, x < 0}, {(x + Log[2])/2, x >= 0}}, 0]}, Assumptions -> NotElement[x, Reals]]]/(Sqrt[Pi]*(2*Sqrt[2/E]*Erf[Log[2]/(2*Sqrt[2])] + Erfc[(-2 + Log[2])/(2*Sqrt[2])] + 2*Erfc[(2 + Log[2])/(2*Sqrt[2])]))

If I plot it I get

enter image description here

The result of the derivation should be a density function. I used

fx0[x_] := D[temp0[x], x]

to get the density function but it didnt help me. Do you know how can I ignore the discontinuity at $0$ for the derivation?

Thank you very much.

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

Using the definition of temp0[x], it is possible to plot the derivative by taking the limit:

der[x_] := Limit[temp0'[x + eps], eps -> 0];
Plot[der[x], {x, -5, 5}]

enter image description here

Note the kink at the origin. This uses a similar technique to J. M.'s answer here.

share|improve this answer
add comment

OP wrote: Do you know how can I ignore the discontinuity at 0 for the derivation?

You most definitely do not want to 'ignore' the discontinuity at 0. The fact that the CDF jumps from about 0.64 to about 0.84 at $x = 0$ implies that your density is:

  • piecewise continuous for $x < 0$,

  • has a discrete mass at $x = 0$, i.e. $f(0) \approx 0.2$, and then

  • piecewise continuous for $x>0$.

The density should thus appear like so:

You can plot the discrete mass at $x = 0$ using something like:

BB = ListPlot[{{0, .2}}, PlotStyle -> AbsolutePointSize[8], Filling -> Axis]

and then:

Show[AA,BB] 

where AA is the continuous plot ... to get the complete mixed continuous/discrete density.

share|improve this answer
    
thanks for the post and for the information. You are exactly right, in fact. I get the distribution function via transformation temp0[x_] := ff0[ll[x]] here ll[x] is the inverse function of Piecewise[{{{0}, -Log[2]/2 <= x <= Log[2]/2}, {Log[E^(2*x)/2], 2*x > Log[2]}}, Log[2*E^(2*x)]] and ff0[x] is the CDF of the density (UnitStep[-x - Log[2]/2]/(E^((1 + x)^2/2)*Sqrt[2*Pi]) + (Sqrt[2/Pi]*UnitStep[x - Log[2]/2])/E^((1 + x)^2/2) + (Sqrt[E^(-(-1 + x)^2/2)]*Sqrt[E^(-(1 + x)^2/2)]*(-UnitStep[x - Log[2]/2] + UnitStep[x + Log[2]/2]))/Sqrt[Pi])/C1 I simply took ll[0]=Log[2]/2 which is originally –  Seyhmus Güngören Oct 17 '13 at 9:22
    
My density doesnt add upto $1$ when I ignore the point pass. How can I modify my function at $0$? –  Seyhmus Güngören Oct 17 '13 at 11:53
    
I have no idea whether it is appropriate for you to ignore the discrete point ... but if the mass at $x = 0$ is p, and you want to ignore the point at $x = 0$ (??), and the continuous component of your pdf is f, then f/(1-p) should be a well-defined density that integrates to unity (with the discrete point expunged). –  wolfies Oct 17 '13 at 12:02
    
I will ask a new question. –  Seyhmus Güngören Oct 17 '13 at 12:36
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.