# Convolution of Gaussian and Lorentzian functions

I have a Gaussian and a Lorentzian function here;

gd[v_] = Sqrt[(4*Log[2]/Pi)]*(1/Dw)*Exp[-4*Log[2]*((v - v0)/Dw)^2]
gl[v_] = (Lw/2/Pi)/((v - v0)^2 + (Lw/2)^2);


I want to get a Voigt function by using the convolution of the above two functions,

Voi[v_] = Integrate[gd[v']*gl[v' - v], {v', -Infinity, Infinity}]


but it just returns the input,

So, how to do this convolution in Mathematica?

• Why don't you use VoigtDistribution[ lorentzwidth, gaussianwidth ], which is a built-in function? This convolution has not an analytical formula, and it is difficult to evaluate numerically. It is pretty much studied, since it appears in several contexts, in particular in astrophysics and x-ray spectroscopy. – Vito Vanin Nov 30 '17 at 16:31

It seems, that MMA can't do that integral analytically (working with Version 8.0). Also Convolvedidn't do the job.

Do it numerically. By the way, don't use v', because it is interpreted as Derivative and regard, the correct definition is gl[v - vs, v0, Lw], not vs-v.

gd[v_, v0_, Dw_] =
Sqrt[(4*Log[2]/Pi)]*(1/Dw)*Exp[-4*Log[2]*((v - v0)/Dw)^2];

gl[v_, v0_, Lw_] = (Lw/2/Pi)/((v - v0)^2 + (Lw/2)^2);

Voi[v_, v0_, Dw_, Lw_] :=
NIntegrate[gd[vs, v0, Dw]*gl[v - vs, v0, Lw], {vs, -Infinity, Infinity}]

Plot[{gd[v, 1, 2], gl[v, 1, 1/2], Voi[v, 1, 2, 1/2]}, {v, -5, 5},
PlotRange -> All, PlotStyle -> {Green, Blue, Red}]