# Integrating multiple DiracDelta functions

When I integrate the product of two DiracDelta functions, I get a single DiracDelta, i.e.,

Integrate[DiracDelta[x-y] DiracDelta[x-z],{x,-Infinity,Infinity}] = DiracDelta[y-z]

as expected.

However, sometimes the integral of a product of DiracDelta functions does not give the correct result. For instance one would expect:

Integrate[DiracDelta[u+z(1-x)] DiracDelta[v-z y], {z,-Infinity,Infinity}] = DiracDelta[v(1-x)+u y]

but instead gets a convergence error:

"Integral of ... does not converge on {-infinity, infinity}".


The strange thing is, if you write this integral changing $x \to 1-x$, then you get the expected result:

Integrate[DiracDelta[u+z x] DiracDelta[v-z y], {z,-Infinity,Infinity}] = DiracDelta[v x+u y]

What's going on?

• Thank you David for editing my post to make it look better. – Quantization Feb 16 '18 at 22:45
• Well, I am not trying to consider whether diracdelta is mathematically well-defined object or not. Im merely saying it has an explicit rules and expected behaviors under integral, and mathematica seems to have a buggy features. – Quantization Feb 17 '18 at 5:22
• If you are disturbed by it, then just consider the delta function as a limit definition of exponent. Whether you are uncomfortable with Integrate[DiracDelta[x],{x,0,1}] = 1 or not, that is what I am 'assuming' to be true and I do not want to debate any issues about distributions. Your points are beyond the issues of mathematica pointed out here. – Quantization Feb 17 '18 at 5:37
• @user64494 the product of distributions with disjoint singular support is perfectly well-defined. Such is the case of the distributions in the OP. – AccidentalFourierTransform Feb 17 '18 at 16:32
• @user64494 I said mollified, not modified. Have a look at the wikipedia page if you want. And no, I did not contact Mykytyuk, and I have no intention of doing so. I don't think they want any kind of unsolicited email from internet strangers, asking about very basic distribution theory facts. – AccidentalFourierTransform Apr 29 '18 at 19:46

Dirty workaround:

integrand = DiracDelta[u + z (1 - x)] DiracDelta[v - z y];
Integrate[integrand /. x -> x + 1, {z, -Infinity, Infinity}] /. x -> (x - 1)

(* DiracDelta[v (1 - x) + u y] *)


A safer option, which should work quite generically, is

integrand = DiracDelta[u + z (1 - x)] DiracDelta[v - z y];
Integrate[integrand /. DiracDelta[a_ + b_ z] :> 1/Abs[b] DiracDelta[a/b + z], {z, -Infinity, Infinity}] /. 1/Abs[b_] DiracDelta[a_] :> DiracDelta[a b] // Simplify

(* DiracDelta[v - v x + u y] *)


--

More generally, the problem seems to be with the structure $1\pm A$, where $A$ may be either symbolic or numeric. For example, the integral

Integrate[DiracDelta[u + z (1 + \[Pi])] DiracDelta[v - z y], {z, -Infinity, Infinity}]


is also returned unevaluated. On the other hand

Integrate[DiracDelta[u + z E] DiracDelta[v - z y], {z, -Infinity, Infinity}]

(* DiracDelta[E v + u y] *)


is calculated correctly.

• Comments are not for extended discussion; this conversation has been moved to chat. – Kuba Apr 29 '18 at 18:11