MATLAB Answers

0

Convolution of two log normal distributions

Asked by Joshua Woodard on 17 Sep 2019
Latest activity Edited by Bruno Luong
on 18 Sep 2019
Greetings. I am trying to do the convolutions of two lognormal distributions however, I am getting errors. I started to question my method but I cannot find a mistake in my script. Is there a better way? I seem to be getting unexpected numerical values. I would expect like any CDF to approach 1, but this one is not.
%% Convolution of two LogNormal Distributions.
clc
clear all
format long
muX = 9.7224; % For Ni Distribution (X-domain)
sigmaX = 0.3332; % For Ni Distribution (X-domain)
muY = 8.6878; % For Np Distribution (Y-domain)
sigmaY = 0.2454; % For Np Distribution (Y-domain)
t = inf; % Cycles input (would expect an answer of 1 with t = inf.)
fun = @(y,x) exp(-0.5.*((log(x) - muX).^2)./(sigmaX.^2))./(x.*sigmaX.*sqrt(2.*pi)) .* exp(-0.5.*((log(y) - muY).^2)./(sigmaY.^2))./(y.*sigmaY.*sqrt(2.*pi));
P = integral2(fun,-inf,t - 'x',-inf,inf,'RelTol',1e-12,'AbsTol',1e-12)

  0 Comments

Sign in to comment.

Products


Release

R2017b

3 Answers

Answer by Jeff Miller
on 18 Sep 2019
 Accepted Answer

Convolutions are pretty easy to do in Cupid. For example, the following code gives the attached figure
muX = 9.7224; % For Ni Distribution (X-domain)
sigmaX = 0.3332; % For Ni Distribution (X-domain)
muY = 8.6878; % For Np Distribution (Y-domain)
sigmaY = 0.2454; % For Np Distribution (Y-domain)
conv = Convolution(Lognormal(muX,sigmaX),Lognormal(muY,sigmaY));
conv.PlotDens
This might be handy if you also want to try other distributions, try fitting data, etc.

  0 Comments

Sign in to comment.


Answer by Image Analyst
on 18 Sep 2019

For convolution, use conv() on your numerical vectors.

  0 Comments

Sign in to comment.


Answer by Bruno Luong
on 18 Sep 2019
Edited by Bruno Luong
on 18 Sep 2019

LOGNORMAL is defined on (0,Inf) not (-Inf,Inf)
P = integral2(fun,0,t - 'x',0,inf,'RelTol',1e-12,'AbsTol',1e-12)
returns correctly
P =
1.0000

  0 Comments

Sign in to comment.