3

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?

QuantumDot
  • 19,601
  • 7
  • 45
  • 121

3 Answers3

2

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.

Michael E2
  • 235,386
  • 17
  • 334
  • 747
  • I cannot locate any documentation on splitting up the interval of integration. Can you please provide a reference/link to this feature. Thanks. – Bob Hanlon Mar 15 '15 at 04:08
  • @BobHanlon I can't remember how I knew this. You can find an example in the docs for Integrate (search for "contour"). See also http://mathematica.stackexchange.com/q/20300. – Michael E2 Mar 15 '15 at 12:36
1

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.

Bob Hanlon
  • 157,611
  • 7
  • 77
  • 198
1

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.

Jens
  • 97,245
  • 7
  • 213
  • 499