Re: Integrating DiracDelta to get UnitStep
- To: mathgroup at smc.vnet.net
- Subject: [mg91292] Re: Integrating DiracDelta to get UnitStep
- From: Roland Franzius <roland.franzius at uos.de>
- Date: Wed, 13 Aug 2008 04:42:28 -0400 (EDT)
- References: <g7p2tm$arr$1@smc.vnet.net>
CRC schrieb: > Hi: > > I am a bit confused by Mathematica 6.0.3 behavior. I expect that: > > In[n]:= Integrate[DiracDelta[x], {x, -\[Infinity], t}, > Assumptions -> Im[t] == 0] > > Will produce: > > Out[n]= UnitStep[t] > > But instead it produces: > > Out[n]= 1 > > However, > > In[n+1]:= Plot[ Integrate[DiracDelta[x], {x, -\[Infinity], t}, > Assumptions -> Im[t] == 0], {t, -2, 2} ] > > produces the expected plot of UnitStep[t]. > > > Why doesn't the integration output the UnitStep function? If you consider the integration limit t as a complex number, you have to chose a contour for integration from -oo to t+i*0. The UnitStep distribution along the real axis is a limit of the difference of the complex logarithms with with cut along the positive real axis from above and below. Its derivative therefore is a boundary value of the analytic function z->1/z. What Mathematica knows about the complex representation of these distributions you see here In: Assuming[x \[Element] Reals, Integrate[DiracDelta[x ], {x, a, b}]] Out: If[Element[a, Reals] && Element[b, Reals], (-1 + 2*HeavisideTheta[-a + b])*HeavisideTheta[ (-b)*HeavisideTheta[a - b] - a*HeavisideTheta[-a + b]]* HeavisideTheta[ a*HeavisideTheta[a - b] + b*HeavisideTheta[-a + b]], Integrate[DiracDelta[x], {x, a, b}, Assumptions -> Element[x, Reals] && (NotElement[a, Reals] || NotElement[b, Reals])]] As displyed by the last expression Mathematica has no clue about the integral as a complex countour integral. For the real case we have In: f[a_, b_] = Assuming[{a, b, x} \[Element] Reals, Integrate[DiracDelta[x ], {x, a, b}]] Out: (-1 + 2*HeavisideTheta[-a + b])*HeavisideTheta[ (-b)*HeavisideTheta[a - b] - a*HeavisideTheta[-a + b]]* HeavisideTheta[a*HeavisideTheta[a - b] + b*HeavisideTheta[-a + b]] which is correct as you see with Plot3D. In: f[DirectedInfinity[ -1], 1] Out: HeavisideTheta[Indeterminate] In: HeavisideTheta[-1+I] Out: HeavisideTheta[-1+I] Hope it helps. -- Roland Franzius