A long while ago I was able to integrate with Mathematica:
$$\int_0^1 \delta(1-x)\delta(x) f(x) \,dx = 0$$
using Integrate[DiracDelta[1-x] DiracDelta[x] f[x], {x, 0, 1}]
. Now, it just returns unevaluated. What can I do to make it integrate it?
3 Answers
You can split up the interval of integration:
Integrate[DiracDelta[1 - x] DiracDelta[x] f[x], {x, 0, 1/2, 1}]
(* 0 *)
Still, it seems a bit inconvenient.
-
$\begingroup$ I cannot locate any documentation on splitting up the interval of integration. Can you please provide a reference/link to this feature. Thanks. $\endgroup$ Mar 15, 2015 at 4:08
-
$\begingroup$ @BobHanlon I can't remember how I knew this. You can find an example in the docs for
Integrate
(search for "contour"). See also mathematica.stackexchange.com/q/20300. $\endgroup$ Mar 15, 2015 at 12:36
With v10.0.2 it appears to work only for infinite bounds or using NIntegrate
$Version
"10.0 for Mac OS X x86 (64-bit) (December 4, 2014)"
Integrate[DiracDelta[1 - x] DiracDelta[x] f[x], {x, -Infinity, Infinity}]
0
Integrate[DiracDelta[x, 1 - x] f[x], {x, -Infinity, Infinity}]
0
NIntegrate[DiracDelta[1 - x] DiracDelta[x] f[x], {x, 0, 1}, AccuracyGoal -> 5]
0.
NIntegrate[DiracDelta[x, 1 - x] f[x], {x, 0, 1}, AccuracyGoal -> 5]
0.
Indeed, the integral should give zero even with finite bounds. This workaround seems to give the desired result:
Limit[
Integrate[
DiracDelta[1 - x] DiracDelta[x] f[x], {x, ϵ, 1}], ϵ -> 0]
(* ==> 0 *)
But it works only because it effectively cuts off the lower bound and thus the lower delta function.
f
to eval this? Supposef[x]=1/(DiracDelta[1 - x] DiracDelta[x])
$\endgroup$