# Convolution integrals

I want to calculate the following integral

$$\int_{-\infty}^{\infty} d \omega f(\omega) g(\omega'\pm\omega)$$

where $$f$$ has the form $$f(\omega)=\frac{a}{\omega- \omega_0\pm i \eta}$$ and $$g$$ has a similar expression. $$\eta$$ is a infinitesimal positive number.

What is the best way of evaluating (in a symbolic way) the convolution integral?

I tried the following command but it does not work

Integrate[
1/(ω - 3 - I η) 1/(ω' - ω - 6.3 + I η),
{ω, -Infinity, Infinity}
]

Any suggestion?

• Have you tried Integrate? – C. E. Sep 25 '19 at 10:26
• Integrate does not work – user3368447 Sep 25 '19 at 10:41
• Please share the code for what you have tried. Users here don't want to spend time converting the expressions into Mathematica code and it helps to know what has already been tried. – C. E. Sep 25 '19 at 11:20
• The following command Integrate[ 1/([Omega] - 3 - I *[Eta])/([Omega]1 - [Omega] - 63/10 + I*[Eta] ), {[Omega], -Infinity, Infinity}] outputs ConditionalExpression[0, Re[[Eta]] > 0 && Im[[Omega]1] + Re[[Eta]] > 0]. I have no time to investigate why. – user64494 Sep 25 '19 at 12:51
• Imaginary part is just $\mp \pi a g(\omega\pm\omega_0)$. A standard way to compute the real part is via the Hilbert transform. See here mathematica.stackexchange.com/questions/341/… – yarchik Sep 25 '19 at 13:57

The problem is that Mathematica has a specific use for the ' character (namely Derivative). Changing ω' to ωp gives

Integrate[1/(ω - 3 - I η) 1/(ωp - ω - 6.3 + I η), {ω, -Infinity, Infinity}]

ConditionalExpression[0. + 0. I, Im[(0. + 1. I) η + 1. ωp] > 0 && Re[η] > 0]

Or you can use the built in function Convolve as

Convolve[1/(ω - 3 - I η), 1/(ω - 6.3 + I η), ω, ωp]

0.

And if I've generalized correctly with

f[ω_] := a/(ω - ω0 - I η)
g[ω_] := a/(ω - ω1 + I η)

then

Convolve[f[ω], g[ω], ω, ωp]
% /. {a -> 1, ω0 -> 3, ω1 -> 6.3}

a^2 Convolve[1/(-I η + ω - ω0), 1/(I η + ω - ω1), ω, ωp]

0.

Which is not very satisfying because we still have an unevaluated Convolve. But if we allow for conditions

Convolve[f[ω], g[ω], ω, ωp, GenerateConditions -> True]
% /. {a -> 1, ω0 -> 3, ω1 -> 6.3}

ConditionalExpression[0, Im[ω0] + Re[η] > 0 && Im[ω1] < Re[η]]

ConditionalExpression[0, Re[η] > 0]

we get something that agrees with the above, and is a little more satisfying (at least to me).