3
$\begingroup$

When I have a Lorentzian distribution (centered at xc and with area c1):

L1[x_] := c1*1/π*(1/2*S1)/((x - xc)^2 + (1/2*S1)^2)

then the full width at half maximum (FWHM) is simply S1. Suppose now that I have two Lorentzian distributions:

L1[x_] := c1*1/π*(1/2*S1)/((x - xc)^2 + (1/2*S1)^2)
L2[x_] := c2*1/π*(1/2*S2)/((x - xc)^2 + (1/2*S2)^2)

What is the FWHM of L[x], sum of L1 and L2?

L[x_] := L1[x] + L2[x]
$\endgroup$
2
  • $\begingroup$ This seems more like a Mathematics question, rather than about the computing software Mathematica. $\endgroup$
    – march
    Dec 15, 2016 at 21:00
  • $\begingroup$ it is indeed a Mathematics question, but I am interested in how to compute it, symbolically, with Mathematica. I should have explained this... $\endgroup$
    – Luigi
    Dec 15, 2016 at 21:24

1 Answer 1

7
$\begingroup$
distr1 = CauchyDistribution[xc, S1/2];

PDF[distr1, x] // Simplify

(*  (2*S1)/(Pi*(S1^2 + 4*(x - xc)^2))  *)

distr2 = CauchyDistribution[xc, S2/2];

PDF[distr2, x] // Simplify

(*  (2*S2)/(Pi*(S2^2 + 4*(x - xc)^2))  *)

The constraints on the parameters are

assume = And[
   DistributionParameterAssumptions[distr1],
   DistributionParameterAssumptions[distr2]] // Simplify

(*  xc ∈ Reals && S1 > 0 && S2 > 0  *)

The distribution of the sum of two Lorentzian variates is

distrSum = TransformedDistribution[l1 + l2,
  {l1  \[Distributed] distr1, l2  \[Distributed] distr2}]

(*  CauchyDistribution[2*xc, S1/2 + S2/2]  *)

The maximum value is

max = Assuming[assume,
  Maximize[PDF[distrSum, x], x] //
   Simplify]

(*  {2/(Pi*(S1 + S2)), {x -> 2*xc}}  *)

Verifying that this where the derivative is zero

D[PDF[distrSum, x], x] /. max[[2]]

(*  0  *)

The full width half maximum is

fwhm = Assuming[assume,
  Abs[Subtract @@ (x /.
        Solve[PDF[distrSum, x] == max[[1]]/2, x, Reals] //
       Simplify)] //
    Simplify]

(*  S1 + S2  *)

EDIT: The distribution of the weighted sum of two Lorentzian variates is

distrSum2 = Assuming[assume,
  TransformedDistribution[a*l1 + b*l2,
   {l1  \[Distributed] distr1, l2  \[Distributed] distr2}]]

(*  CauchyDistribution[a xc + b xc, (a S1)/2 + (b S2)/2]  *)

Assuming that the weights are positive

assume2 = assume && a > 0 && b > 0

(*  xc ∈ Reals && S1 > 0 && S2 > 0 && a > 0 && b > 0  *)

The maximum value is

max2 = Assuming[assume2,
  Maximize[PDF[distrSum2, x], x] //
   Simplify]

(*  {2/(a π S1 + b π S2), {x -> (a + b) xc}}  *)

Verifying that this where the derivative is zero

Assuming[assume2,
 D[PDF[distrSum2, x], x] /. max2[[2]] //
  Simplify]

(*  0  *)

The full width half maximum is

fwhm2 = Assuming[assume2,
  Abs[Subtract @@ (x /.
        Solve[PDF[distrSum2, x] == max2[[1]]/2, x, Reals] //
       Simplify)] // Simplify]

(*  a S1 + b S2  *)
$\endgroup$
6
  • $\begingroup$ Inserting values in the function, that doesn't seem to be the right answer. In my example that would be 3.4. $\endgroup$
    – Feyre
    Dec 15, 2016 at 21:55
  • 1
    $\begingroup$ @Feyre - you cannot get the distribution for the sum of two random variates by adding their PDFs. $\endgroup$
    – Bob Hanlon
    Dec 15, 2016 at 22:24
  • $\begingroup$ You're right, I misread this. I was confused as was with the weird solution. $\endgroup$
    – Feyre
    Dec 15, 2016 at 22:29
  • $\begingroup$ is this result valid only for Cauchy distributions with area=1? What happens if I change their relative areas? $\endgroup$
    – Luigi
    Dec 15, 2016 at 22:31
  • $\begingroup$ @Luigi - then presumably you went the distribution: distrSum = TransformedDistribution[a*l1 +b* l2, {l1 \[Distributed] distr1, l2 \[Distributed] distr2}] $\endgroup$
    – Bob Hanlon
    Dec 15, 2016 at 22:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.